{"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-464ac168b47ee897", "name": "Possibly dead Python function: draw_header", "shortDescription": {"text": "Possibly dead Python function: draw_header"}, "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-bd040f02412e36b7", "name": "Possibly dead Python function: find_item_by_code", "shortDescription": {"text": "Possibly dead Python function: find_item_by_code"}, "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-12de2f54a921c13e", "name": "Possibly dead Python function: generate_agent_crosstalk", "shortDescription": {"text": "Possibly dead Python function: generate_agent_crosstalk"}, "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-43926efc93d8a9a4", "name": "Possibly dead Python function: extract_improvement_suggestions", "shortDescription": {"text": "Possibly dead Python function: extract_improvement_suggestions"}, "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-abec394228fbca34", "name": "Possibly dead Python function: load_improvement_suggestions", "shortDescription": {"text": "Possibly dead Python function: load_improvement_suggestions"}, "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-a29d53a0e22e0197", "name": "Possibly dead Python function: build_graph_context_for_prompt", "shortDescription": {"text": "Possibly dead Python function: build_graph_context_for_prompt"}, "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-2827477eb353d31d", "name": "Possibly dead Python function: run_experiment_bayesian", "shortDescription": {"text": "Possibly dead Python function: run_experiment_bayesian"}, "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-fde122853e256da5", "name": "Possibly dead Python function: run_experiment_kalman", "shortDescription": {"text": "Possibly dead Python function: run_experiment_kalman"}, "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-61734d6a62c1f2c8", "name": "Possibly dead Python function: run_experiment_prospect_theory", "shortDescription": {"text": "Possibly dead Python function: run_experiment_prospect_theory"}, "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-3bc3cc0ef6a066a1", "name": "Possibly dead Python function: run_experiment_survival", "shortDescription": {"text": "Possibly dead Python function: run_experiment_survival"}, "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-78f32ffa56526570", "name": "Possibly dead Python function: run_experiment_power_law", "shortDescription": {"text": "Possibly dead Python function: run_experiment_power_law"}, "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-a6c87d7f99a3bfa5", "name": "Possibly dead Python function: run_experiment_granger", "shortDescription": {"text": "Possibly dead Python function: run_experiment_granger"}, "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-b51cd21a05b7d217", "name": "Possibly dead Python function: run_experiment_maxent", "shortDescription": {"text": "Possibly dead Python function: run_experiment_maxent"}, "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-1f08eddc43bfef3c", "name": "Possibly dead Python function: run_weekly_cycle_async", "shortDescription": {"text": "Possibly dead Python function: run_weekly_cycle_async"}, "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-89f9226776c99233", "name": "Possibly dead Python function: collect_from_arxiv_async", "shortDescription": {"text": "Possibly dead Python function: collect_from_arxiv_async"}, "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-58b82719d4070da7", "name": "Possibly dead Python function: render_gunshi", "shortDescription": {"text": "Possibly dead Python function: render_gunshi"}, "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-7f534a76ce791296", "name": "Possibly dead Python function: red_label", "shortDescription": {"text": "Possibly dead Python function: red_label"}, "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-ae0ce9278b57f120", "name": "Possibly dead Python function: plot_benchmark_comparison", "shortDescription": {"text": "Possibly dead Python function: plot_benchmark_comparison"}, "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-cc29c8ce622b2815", "name": "Possibly dead Python function: plot_indicators_bar", "shortDescription": {"text": "Possibly dead Python function: plot_indicators_bar"}, "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-70c3df36113e8858", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ScoreDAG.tsx:53", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ScoreDAG.tsx:53"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-401a29e65d1f903e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/Sidebar.tsx:190", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/Sidebar.tsx:190"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f7cc7af34df1edf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/form/FormGeneral.tsx:220", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/form/FormGeneral.tsx:220"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a9a4e3ae242cd8a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/GunshiAdvice.tsx:857", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/GunshiAdvice.tsx:857"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8300b4ffd300432e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/ReportGenerator.tsx:150", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/ReportGenerator.tsx:150"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c94babff1bd2b22", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/cases/page.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/cases/page.tsx:161"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0797ad92cc36d0a2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/knowledge-space/page.tsx:1191", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/knowledge-space/page.tsx:1191"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-565d1cedf4d41d14", "name": "\"active\" state uses light bg in a dark theme \u2014 frontend/src/app/knowledge-space/page.tsx:1253", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 frontend/src/app/knowledge-space/page.tsx:1253"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c362be16a1bac8a5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/finance/page.tsx:853", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/finance/page.tsx:853"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3e9476612991d7e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/department/page.tsx:526", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/department/page.tsx:526"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5175b13d8d75ab39", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/report/page.tsx:598", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/report/page.tsx:598"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68a459f3eb506921", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/subsidy/page.tsx:250", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/subsidy/page.tsx:250"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4443e14eb7be63a0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/agent-hub/page.tsx:537", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/agent-hub/page.tsx:537"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b8211c8e6ce309c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/industry-stats/page.tsx:231", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/industry-stats/page.tsx:231"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0977cca8ba31adb0", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "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-397fd4515e7f8f0e", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim-bookworm", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-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-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77a464701f01cedf", "name": "Possible secret in README.md", "shortDescription": {"text": "Possible secret in README.md"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-065e94e8a2f2f0e9", "name": "Insecure pattern 'cors_wildcard' in backend.py:39", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in backend.py:39"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c8af33a97f323d7", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/GunshiAdvice.tsx:857", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/GunshiAdvice.tsx:857"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80e5360dc20c1468", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/ReportGenerator.tsx:150", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/ReportGenerator.tsx:150"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2dd111fdb1bea939", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/src/app/similar/page.tsx:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/src/app/similar/page.tsx:134"}, "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-bd4d9e6ed16c6f74", "name": "Insecure pattern 'dangerous_innerhtml' in scripts/lease_system_gap_analyzer.py:265", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in scripts/lease_system_gap_analyzer.py:265"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ddf0e75911ce9d2", "name": "Insecure pattern 'exec_used' in pydeps/numpy/testing/_private/utils.py:1119", "shortDescription": {"text": "Insecure pattern 'exec_used' in pydeps/numpy/testing/_private/utils.py:1119"}, "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-7a0f59cbdaea9259", "name": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/auxfuncs.py:607", "shortDescription": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/auxfuncs.py:607"}, "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-b56a91293ce5dbf0", "name": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/capi_maps.py:157", "shortDescription": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/capi_maps.py:157"}, "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-c94dc708a5f5320d", "name": "Insecure pattern 'tls_verify_false' in pydeps/numpy/lib/ufunclike.py:18", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/lib/ufunclike.py:18"}, "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-2cd88e6579e149a1", "name": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/fromnumeric.py:3832", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/fromnumeric.py:3832"}, "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-5245cf8f710e73ba", "name": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/multiarray.py:82", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/multiarray.py:82"}, "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-9cdaa824f5f83b4d", "name": "Insecure pattern 'subprocess_shell_true' in pydeps/numpy/distutils/lib2def.py:62", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in pydeps/numpy/distutils/lib2def.py:62"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1292496e5c007846", "name": "Insecure pattern 'eval_used' in pydeps/numpy/distutils/misc_util.py:157", "shortDescription": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/distutils/misc_util.py:157"}, "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-afd69f1f10eda2d7", "name": "Insecure pattern 'debug_true' in pydeps/numpy/distutils/mingw32ccompiler.py:67", "shortDescription": {"text": "Insecure pattern 'debug_true' in pydeps/numpy/distutils/mingw32ccompiler.py:67"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53d7781f7bc6ffd1", "name": "Insecure pattern 'eval_used' in pydeps/numpy/ma/timer_comparison.py:442", "shortDescription": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/ma/timer_comparison.py:442"}, "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-0759fa1bf2ed50ff", "name": "Insecure pattern 'debug_true' in web/app.py:200", "shortDescription": {"text": "Insecure pattern 'debug_true' in web/app.py:200"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95cddfed93d37ec3", "name": "Insecure pattern 'eval_used' in .claude/skills/security-and-hardening/SKILL.md:50", "shortDescription": {"text": "Insecure pattern 'eval_used' in .claude/skills/security-and-hardening/SKILL.md:50"}, "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-8482cefba70934ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/security-and-hardening/SKILL.md:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/security-and-hardening/SKILL.md:97"}, "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-70b7d67591caaa47", "name": "Insecure pattern 'direct_innerhtml_assignment' in mobile_app/index.html:1599", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mobile_app/index.html:1599"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5887e32c6bab5674", "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-0b1741e84d152089", "name": "Very large file: screening_report.py (1308 lines)", "shortDescription": {"text": "Very large file: screening_report.py (1308 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-e6df35238f979b16", "name": "Very large file: mathematician_agent.py (1243 lines)", "shortDescription": {"text": "Very large file: mathematician_agent.py (1243 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-4802b961b5a51a9d", "name": "Very large file: shinsa_gunshi_ui.py (1322 lines)", "shortDescription": {"text": "Very large file: shinsa_gunshi_ui.py (1322 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-9d4f41cf80a95eaa", "name": "Very large file: lease_logic_sumaho8.py (5633 lines)", "shortDescription": {"text": "Very large file: lease_logic_sumaho8.py (5633 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-56fd6481cc48c3d0", "name": "Very large file: soul_factor_miner.py (1579 lines)", "shortDescription": {"text": "Very large file: soul_factor_miner.py (1579 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-b5b8546e649540b4", "name": "Very large file: analysis_regression.py (2162 lines)", "shortDescription": {"text": "Very large file: analysis_regression.py (2162 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-2ae7d1d3800e6147", "name": "Very large file: novelist_agent.py (1522 lines)", "shortDescription": {"text": "Very large file: novelist_agent.py (1522 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-23e89463137cf225", "name": "Very large file: scoring_core.py (1187 lines)", "shortDescription": {"text": "Very large file: scoring_core.py (1187 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-643a848ff147cc7f", "name": "Very large file: lease_intelligence_mind.py (1718 lines)", "shortDescription": {"text": "Very large file: lease_intelligence_mind.py (1718 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-63d75ed1d6de3057", "name": "Very large file: ai_chat.py (1395 lines)", "shortDescription": {"text": "Very large file: ai_chat.py (1395 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-28ad44fde9632dcb", "name": "Very large file: data_cases.py (1358 lines)", "shortDescription": {"text": "Very large file: data_cases.py (1358 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-80452799b951463f", "name": "Very large file: slack_screening.py (1164 lines)", "shortDescription": {"text": "Very large file: slack_screening.py (1164 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-4511548d97c497d3", "name": "Very large file: charts.py (1271 lines)", "shortDescription": {"text": "Very large file: charts.py (1271 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-c9ffb0307dc1949e", "name": "Very large file: shinsa_gunshi_logic.py (1281 lines)", "shortDescription": {"text": "Very large file: shinsa_gunshi_logic.py (1281 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-5214235a7da50c44", "name": "Very large file: lease_logic_sumaho12.py (1912 lines)", "shortDescription": {"text": "Very large file: lease_logic_sumaho12.py (1912 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-774ae858eb684889", "name": "Very large file: frontend/src/app/knowledge-space/page.tsx (1530 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/knowledge-space/page.tsx (1530 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-1a1a47566ebafc38", "name": "Very large file: frontend/src/app/home/page.tsx (1204 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/home/page.tsx (1204 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-60b87b88a793e027", "name": "Very large file: frontend/src/app/faq/page.tsx (1217 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/faq/page.tsx (1217 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-97ccb85190daa75f", "name": "Very large file: api/main.py (7870 lines)", "shortDescription": {"text": "Very large file: api/main.py (7870 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-015427b565a1c4bb", "name": "Very large file: _archive/lease_logic_sumaho11.py (4805 lines)", "shortDescription": {"text": "Very large file: _archive/lease_logic_sumaho11.py (4805 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-993e2f506779d7ae", "name": "Very large file: scripts/aurion_core_daily.py (1411 lines)", "shortDescription": {"text": "Very large file: scripts/aurion_core_daily.py (1411 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-3d23805770f0dfc5", "name": "Very large file: components/dashboard.py (1943 lines)", "shortDescription": {"text": "Very large file: components/dashboard.py (1943 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-879d040b1813f922", "name": "Very large file: components/form_apply.py (881 lines)", "shortDescription": {"text": "Very large file: components/form_apply.py (881 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-a208b3dbecf9be4a", "name": "Very large file: components/analysis_results.py (2691 lines)", "shortDescription": {"text": "Very large file: components/analysis_results.py (2691 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-106d17d7f16a141c", "name": "Very large file: components/chat_wizard.py (1079 lines)", "shortDescription": {"text": "Very large file: components/chat_wizard.py (1079 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-76e0330eef44720f", "name": "Very large file: components/agent_hub.py (2227 lines)", "shortDescription": {"text": "Very large file: components/agent_hub.py (2227 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-5d34ba1729fbc4af", "name": "Very large file: components/score_calculation.py (1583 lines)", "shortDescription": {"text": "Very large file: components/score_calculation.py (1583 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-4ed430dd6de0c82f", "name": "Very large file: components/agent_team.py (1954 lines)", "shortDescription": {"text": "Very large file: components/agent_team.py (1954 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-f4e241e1ae44d552", "name": "Very large file: pydeps/numpy/testing/tests/test_utils.py (1626 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/testing/tests/test_utils.py (1626 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-d4103a3d4b9b0db1", "name": "Very large file: pydeps/numpy/testing/_private/utils.py (2509 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/testing/_private/utils.py (2509 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-bf64887c4c96c8e6", "name": "Very large file: pydeps/numpy/f2py/cfuncs.py (1536 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/f2py/cfuncs.py (1536 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-a0f56e9ee91039da", "name": "Very large file: pydeps/numpy/f2py/crackfortran.py (3767 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/f2py/crackfortran.py (3767 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-2a968974beb6d897", "name": "Very large file: pydeps/numpy/f2py/symbolic.py (1517 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/f2py/symbolic.py (1517 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-6325580833a4f57a", "name": "Very large file: pydeps/numpy/f2py/rules.py (1568 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/f2py/rules.py (1568 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-2982598089363548", "name": "Very large file: pydeps/numpy/lib/recfunctions.py (1673 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/recfunctions.py (1673 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-231a36058f31d7bf", "name": "Very large file: pydeps/numpy/lib/nanfunctions.py (1887 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/nanfunctions.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-3d3a828096511946", "name": "Very large file: pydeps/numpy/lib/npyio.py (2547 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/npyio.py (2547 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-4424e6de1d0e9e41", "name": "Very large file: pydeps/numpy/lib/function_base.py (5733 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/function_base.py (5733 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-aca24f4b5b072c9e", "name": "Very large file: pydeps/numpy/lib/tests/test_function_base.py (4201 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/tests/test_function_base.py (4201 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-aba34298ffe3cf08", "name": "Very large file: pydeps/numpy/lib/tests/test_io.py (2775 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/tests/test_io.py (2775 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-07a343b9ea73c216", "name": "Very large file: pydeps/numpy/lib/tests/test_arraypad.py (1380 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/lib/tests/test_arraypad.py (1380 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-40f808563e51336c", "name": "Very large file: pydeps/numpy/polynomial/hermite_e.py (1695 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/polynomial/hermite_e.py (1695 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-ed9ebec2e172481f", "name": "Very large file: pydeps/numpy/polynomial/hermite.py (1703 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/polynomial/hermite.py (1703 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-311f7d8b0d6f39dc", "name": "Very large file: pydeps/numpy/polynomial/laguerre.py (1651 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/polynomial/laguerre.py (1651 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-096a4cbbc2c9d5eb", "name": "Very large file: pydeps/numpy/polynomial/chebyshev.py (2082 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/polynomial/chebyshev.py (2082 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-788f12a751beb2b2", "name": "Very large file: pydeps/numpy/polynomial/legendre.py (1664 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/polynomial/legendre.py (1664 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-1fe75ff160a55d3c", "name": "Very large file: pydeps/numpy/random/tests/test_generator_mt19937.py (2746 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/random/tests/test_generator_mt19937.py (2746 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-d4107ff49da680fc", "name": "Very large file: pydeps/numpy/random/tests/test_random.py (1750 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/random/tests/test_random.py (1750 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-5b1d219b2dd680c7", "name": "Very large file: pydeps/numpy/random/tests/test_randomstate.py (2121 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/random/tests/test_randomstate.py (2121 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-5d205e4c5acdb45b", "name": "Very large file: pydeps/numpy/linalg/linalg.py (2836 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/linalg/linalg.py (2836 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-2bfd46674d5bd46d", "name": "Very large file: pydeps/numpy/linalg/tests/test_linalg.py (2198 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/linalg/tests/test_linalg.py (2198 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-5469b9580d52ccc3", "name": "Very large file: pydeps/numpy/core/_add_newdocs.py (7080 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/_add_newdocs.py (7080 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-27019e7dd8c319fa", "name": "Very large file: pydeps/numpy/core/fromnumeric.py (3920 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/fromnumeric.py (3920 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-218726e7948d4ecb", "name": "Very large file: pydeps/numpy/core/numeric.py (2530 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/numeric.py (2530 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-d3105ddc20580aca", "name": "Very large file: pydeps/numpy/core/defchararray.py (2914 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/defchararray.py (2914 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-54b75f63201ec4f6", "name": "Very large file: pydeps/numpy/core/arrayprint.py (1725 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/arrayprint.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-fe86f869a57e7bae", "name": "Very large file: pydeps/numpy/core/einsumfunc.py (1443 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/einsumfunc.py (1443 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-c6f8102ede0a1c73", "name": "Very large file: pydeps/numpy/core/multiarray.py (1715 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/multiarray.py (1715 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-3a7baca43dee19d2", "name": "Very large file: pydeps/numpy/core/tests/test_einsum.py (1248 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_einsum.py (1248 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-b9d4c38bd0fcfbc0", "name": "Very large file: pydeps/numpy/core/tests/test_numeric.py (3593 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_numeric.py (3593 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-f2a29d8c61acf271", "name": "Very large file: pydeps/numpy/core/tests/test_multiarray.py (10054 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_multiarray.py (10054 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-cf6c2a3352ec403f", "name": "Very large file: pydeps/numpy/core/tests/test_indexing.py (1417 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_indexing.py (1417 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-55e26a5478f197be", "name": "Very large file: pydeps/numpy/core/tests/test_ufunc.py (2996 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_ufunc.py (2996 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-2b8661c72620cade", "name": "Very large file: pydeps/numpy/core/tests/test_nditer.py (3348 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_nditer.py (3348 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-bf09b38b118f8d8b", "name": "Very large file: pydeps/numpy/core/tests/test_datetime.py (2569 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_datetime.py (2569 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-0bd20254361fecc0", "name": "Very large file: pydeps/numpy/core/tests/test_umath.py (4743 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_umath.py (4743 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-6a9fedbc9b0af30f", "name": "Very large file: pydeps/numpy/core/tests/test_regression.py (2568 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_regression.py (2568 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-bc8aef774b5c08be", "name": "Very large file: pydeps/numpy/core/tests/test_dtype.py (1906 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/core/tests/test_dtype.py (1906 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-1d71add7ca7ec719", "name": "Very large file: pydeps/numpy/fft/_pocketfft.py (1424 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/fft/_pocketfft.py (1424 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-992ec258063ca9c3", "name": "Very large file: pydeps/numpy/distutils/system_info.py (3271 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/distutils/system_info.py (3271 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-80feaa8a7b82e96d", "name": "Very large file: pydeps/numpy/distutils/misc_util.py (2493 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/distutils/misc_util.py (2493 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-1a3589d384f91a7c", "name": "Very large file: pydeps/numpy/distutils/ccompiler_opt.py (2668 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/distutils/ccompiler_opt.py (2668 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-80a9991a98180eb6", "name": "Very large file: pydeps/numpy/ma/extras.py (2133 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/ma/extras.py (2133 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-b6bbb0afe4ea360d", "name": "Very large file: pydeps/numpy/ma/core.py (8565 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/ma/core.py (8565 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-d6fc051be7edd03a", "name": "Very large file: pydeps/numpy/ma/tests/test_extras.py (1870 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/ma/tests/test_extras.py (1870 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-f61f3840c066568e", "name": "Very large file: pydeps/numpy/ma/tests/test_core.py (5687 lines)", "shortDescription": {"text": "Very large file: pydeps/numpy/ma/tests/test_core.py (5687 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-643752fbc8f9bee0", "name": "Very large file: mobile_app/obsidian_bridge.py (1373 lines)", "shortDescription": {"text": "Very large file: mobile_app/obsidian_bridge.py (1373 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-d68787c2fdfd7204", "name": "Very large file: mobile_app/api.py (1485 lines)", "shortDescription": {"text": "Very large file: mobile_app/api.py (1485 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-e674a5db2356bd4b", "name": "207 TODO/FIXME markers", "shortDescription": {"text": "207 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "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 1516 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 221 placeholder/mock markers across 70 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4396ee0943224f64", "name": "Agent authority lacks a verifier contract: .claude/rules/workflow.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/rules/workflow.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-271966742cd8e8b5", "name": "Agent authority lacks a verifier contract: .claude/commands/explain-score.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/explain-score.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-e2573acce32798b2", "name": "Agent authority lacks a verifier contract: .claude/commands/check-data.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/check-data.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-696df86491e0f73a", "name": "Agent authority lacks a verifier contract: .claude/commands/asset-evaluation.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/asset-evaluation.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-db9cc08178f5b6cb", "name": "Agent instruction/config may expose a secret: .claude/commands/check-health.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/commands/check-health.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcc40dfb112a85a4", "name": "Agent authority lacks a verifier contract: .claude/commands/check-health.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/check-health.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-7cd7ec7115f41ae8", "name": "Agent authority lacks a verifier contract: .claude/commands/validate-rules.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/validate-rules.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-83adc3ed37d83701", "name": "Agent authority lacks a verifier contract: .claude/commands/case-similarity.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/case-similarity.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-59fa44925b00fa93", "name": "Agent authority lacks a verifier contract: .claude/commands/analyze-variables.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/analyze-variables.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-85f29a08549911bc", "name": "Agent authority lacks a verifier contract: .claude/commands/audit-scores.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/audit-scores.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-5d86c57cf44fb930", "name": "Agent authority lacks a verifier contract: .claude/commands/analyze-logs.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/analyze-logs.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-26a54e2bcb1f4939", "name": "Agent authority lacks a verifier contract: .claude/commands/generate-industry-brief.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/generate-industry-brief.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-dc493250f93a98b6", "name": "Agent authority lacks a verifier contract: .claude/commands/generate-report.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/generate-report.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-433f488afc9eecbb", "name": "Agent authority lacks a verifier contract: .claude/commands/build-check.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/build-check.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-87cfb3f65ab0fe62", "name": "Agent authority lacks a verifier contract: .claude/commands/optimize-coefficients.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/optimize-coefficients.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-29f9e0e966304941", "name": "Agent authority lacks a verifier contract: .claude/commands/batch-export.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/batch-export.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-7e1256cbfb505fb1", "name": "Agent authority lacks a verifier contract: .claude/commands/quick-score.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/quick-score.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-e166796fbb0dd01c", "name": "Agent authority lacks a verifier contract: .claude/commands/financial-forecast.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/commands/financial-forecast.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-44e82a66114cd1a6", "name": "Agent authority lacks a verifier contract: .claude/agents/security-checker.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-checker.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-811c374151c29877", "name": "Agent authority lacks a verifier contract: .claude/reports/data-quality/latest.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/reports/data-quality/latest.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-b1113cf4e3e4bff2", "name": "Agent authority lacks a verifier contract: .claude/skills/git-ship/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/git-ship/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-f6043f0e56b8d97c", "name": "Agent authority lacks a verifier contract: .claude/skills/restart-api/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/restart-api/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-24e547e8b5913854", "name": "Agent instruction/config may expose a secret: .claude/skills/re-lease-count/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/re-lease-count/SKILL.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11cf98dadf262af8", "name": "Legacy-named symbol `lbl_v1` in flet_aurion_wave.py:130", "shortDescription": {"text": "Legacy-named symbol `lbl_v1` in flet_aurion_wave.py:130"}, "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-d38172093a81bb7b", "name": "Commented-code block (5 lines) in lease_logic_sumaho8.py:3583", "shortDescription": {"text": "Commented-code block (5 lines) in lease_logic_sumaho8.py:3583"}, "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-c0fe0dffa88ec824", "name": "Network/subprocess call without timeout or try/except \u2014 mahalanobis_ui.py:46", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 mahalanobis_ui.py:46"}, "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-2a4bc72bc207c2b0", "name": "Legacy-named symbol `spread_predictor_v2` in retraining_pipeline.py:63", "shortDescription": {"text": "Legacy-named symbol `spread_predictor_v2` in retraining_pipeline.py:63"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6845c37d19adc769", "name": "Commented-code block (5 lines) in scoring_core.py:896", "shortDescription": {"text": "Commented-code block (5 lines) in scoring_core.py:896"}, "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-3e90e51e7d412b24", "name": "Network/subprocess call without timeout or try/except \u2014 lease_intelligence_consultation.py:190", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 lease_intelligence_consultation.py:190"}, "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-a4d56bf14bbbe8ba", "name": "Legacy-named symbol `pw_old` in auth_logic.py:239", "shortDescription": {"text": "Legacy-named symbol `pw_old` in auth_logic.py:239"}, "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-f1e1e0bdc7d3b10c", "name": "Commented-code block (5 lines) in slack_screening.py:295", "shortDescription": {"text": "Commented-code block (5 lines) in slack_screening.py:295"}, "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-217d2802a6834b26", "name": "Legacy-named symbol `run_backup` in backup_manager.py:32", "shortDescription": {"text": "Legacy-named symbol `run_backup` in backup_manager.py:32"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ffa8515527180307", "name": "Network/subprocess call without timeout or try/except \u2014 check_integrity.py:234", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 check_integrity.py:234"}, "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-1023dda4d787fb5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/analysis/RealGraphs.tsx:58", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/analysis/RealGraphs.tsx:58"}, "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-866c8efc4d2419aa", "name": "Legacy-named symbol `spread_predictor_v2` in frontend/src/app/help/page.tsx:298", "shortDescription": {"text": "Legacy-named symbol `spread_predictor_v2` in frontend/src/app/help/page.tsx:298"}, "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-7060e62b42f00041", "name": "Legacy-named symbol `test_rerank_prefers_curated_knowledge_over_news_and_sync_copy` in tests/test_knowledge_vector_store", "shortDescription": {"text": "Legacy-named symbol `test_rerank_prefers_curated_knowledge_over_news_and_sync_copy` in tests/test_knowledge_vector_store_rerank.py:17"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a14a5878e44f841", "name": "Legacy-named symbol `spread_predictor_v2` in tests/spec_phase4/test_P4-003.py:123", "shortDescription": {"text": "Legacy-named symbol `spread_predictor_v2` in tests/spec_phase4/test_P4-003.py:123"}, "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-9f35e5f77f04a80b", "name": "Commented-code block (5 lines) in tests/spec_phase3/test_P3-001.py:112", "shortDescription": {"text": "Commented-code block (5 lines) in tests/spec_phase3/test_P3-001.py:112"}, "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-b0ffa3190eb83d32", "name": "Legacy-named symbol `res_backup` in api/scoring_full.py:220", "shortDescription": {"text": "Legacy-named symbol `res_backup` in api/scoring_full.py:220"}, "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-19346593ae149945", "name": "Legacy-named symbol `run_backup` in api/main.py:2755", "shortDescription": {"text": "Legacy-named symbol `run_backup` in api/main.py:2755"}, "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-0dda3e4c520905a7", "name": "Blocking `requests.post(...)` inside `async def ocr_financial` \u2014 api/routers/ocr.py:99", "shortDescription": {"text": "Blocking `requests.post(...)` inside `async def ocr_financial` \u2014 api/routers/ocr.py:99"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `requests.post(...)` 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-ea243d60a925f9a3", "name": "Legacy-named symbol `plotly_3d_v1` in _archive/lease_logic_sumaho11.py:3369", "shortDescription": {"text": "Legacy-named symbol `plotly_3d_v1` in _archive/lease_logic_sumaho11.py:3369"}, "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-70b9a416ff85c86d", "name": "Commented-code block (5 lines) in _archive/lease_logic_sumaho11.py:2012", "shortDescription": {"text": "Commented-code block (5 lines) in _archive/lease_logic_sumaho11.py:2012"}, "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-2dc139014e59d4da", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/dispatch_log_to_obsidian.py:103", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/dispatch_log_to_obsidian.py:103"}, "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-50005562166fb598", "name": "Commented-code block (5 lines) in scripts/cleanup_improvement_reviews.py:52", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/cleanup_improvement_reviews.py:52"}, "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-39245afdc50a6eff", "name": "Legacy-named symbol `removed_old` in scripts/backup_case_data.py:60", "shortDescription": {"text": "Legacy-named symbol `removed_old` in scripts/backup_case_data.py:60"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad228e0c9b9c3291", "name": "Legacy-named symbol `obsidian_backup` in scripts/check_system_health.py:88", "shortDescription": {"text": "Legacy-named symbol `obsidian_backup` in scripts/check_system_health.py:88"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1bfa75e67b482a13", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_recipe.py:42", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_recipe.py:42"}, "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-f29751b485467c44", "name": "Legacy-named symbol `render_sidebar_backup` in components/sidebar.py:240", "shortDescription": {"text": "Legacy-named symbol `render_sidebar_backup` in components/sidebar.py:240"}, "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-e72c4795f9affc00", "name": "Network/subprocess call without timeout or try/except \u2014 components/mahalanobis_3d.py:140", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 components/mahalanobis_3d.py:140"}, "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-bd86f69e34790b5c", "name": "Legacy-named symbol `run_backup` in components/batch_scoring.py:804", "shortDescription": {"text": "Legacy-named symbol `run_backup` in components/batch_scoring.py:804"}, "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-0082c8cf35b69c11", "name": "Legacy-named symbol `_sv_session_copy` in components/analysis_results.py:1046", "shortDescription": {"text": "Legacy-named symbol `_sv_session_copy` in components/analysis_results.py:1046"}, "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-5801a5f9256510ca", "name": "Legacy-named symbol `manual_auto_comment_v2` in components/ai_consultation.py:247", "shortDescription": {"text": "Legacy-named symbol `manual_auto_comment_v2` in components/ai_consultation.py:247"}, "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-08885f60305411c0", "name": "Legacy-named symbol `_vr_session_copy` in components/agent_hub.py:1562", "shortDescription": {"text": "Legacy-named symbol `_vr_session_copy` in components/agent_hub.py:1562"}, "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-bf519778e867c83e", "name": "Commented-code block (5 lines) in components/score_calculation.py:400", "shortDescription": {"text": "Commented-code block (5 lines) in components/score_calculation.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-a97dfb2f276c0c68", "name": "Legacy-named symbol `_build_shinsa_agent_prompt_v2` in components/agent_team.py:1546", "shortDescription": {"text": "Legacy-named symbol `_build_shinsa_agent_prompt_v2` in components/agent_team.py:1546"}, "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-b6619eda95ab67db", "name": "Commented-code block (5 lines) in components/marginal_improvement.py:8", "shortDescription": {"text": "Commented-code block (5 lines) in components/marginal_improvement.py:8"}, "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-b57e35604cc96346", "name": "Commented-code block (5 lines) in pydeps/numpy/__init__.py:214", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/__init__.py:214"}, "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-3967aa3791a94a6e", "name": "Commented-code block (5 lines) in pydeps/numpy/testing/tests/test_utils.py:398", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/testing/tests/test_utils.py:398"}, "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-f54690ac5b5121be", "name": "Commented-code block (8 lines) in pydeps/numpy/testing/_private/utils.py:95", "shortDescription": {"text": "Commented-code block (8 lines) in pydeps/numpy/testing/_private/utils.py:95"}, "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-1e2dd3ae8a422ef5", "name": "Stub function `nop` (body is just `pass`/`return`) \u2014 pydeps/numpy/testing/_private/utils.py:1262", "shortDescription": {"text": "Stub function `nop` (body is just `pass`/`return`) \u2014 pydeps/numpy/testing/_private/utils.py:1262"}, "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-2e8c07c99aff1892", "name": "Commented-code block (7 lines) in pydeps/numpy/tests/test_public_api.py:114", "shortDescription": {"text": "Commented-code block (7 lines) in pydeps/numpy/tests/test_public_api.py:114"}, "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-421abeebf6537551", "name": "Commented-code block (13 lines) in pydeps/numpy/f2py/cfuncs.py:376", "shortDescription": {"text": "Commented-code block (13 lines) in pydeps/numpy/f2py/cfuncs.py:376"}, "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-af1afd702dc9babb", "name": "Commented-code block (5 lines) in pydeps/numpy/f2py/crackfortran.py:1453", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/crackfortran.py:1453"}, "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-92462bc6dfeb3dd5", "name": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/auxfuncs.py:33", "shortDescription": {"text": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/auxfuncs.py:33"}, "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-61b909467d2b4d06", "name": "Commented-code block (8 lines) in pydeps/numpy/f2py/symbolic.py:14", "shortDescription": {"text": "Commented-code block (8 lines) in pydeps/numpy/f2py/symbolic.py:14"}, "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-25c0d2d2710c28d0", "name": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/rules.py:66", "shortDescription": {"text": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/rules.py:66"}, "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-3cf751a080b4a5f6", "name": "Commented-code block (5 lines) in pydeps/numpy/f2py/rules.py:895", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/rules.py:895"}, "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-a6778d7be73ca2a1", "name": "Commented-code block (5 lines) in pydeps/numpy/f2py/capi_maps.py:149", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/capi_maps.py:149"}, "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-6a3329fbdf971870", "name": "Legacy-named symbol `_character_bc_old` in pydeps/numpy/f2py/tests/test_character.py:497", "shortDescription": {"text": "Legacy-named symbol `_character_bc_old` in pydeps/numpy/f2py/tests/test_character.py:497"}, "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-aeac279a14f9c976", "name": "Legacy-named symbol `obj_copy` in pydeps/numpy/f2py/tests/test_array_from_pyobj.py:272", "shortDescription": {"text": "Legacy-named symbol `obj_copy` in pydeps/numpy/f2py/tests/test_array_from_pyobj.py:272"}, "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-d6493948facfd9f7", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/f2py/_backends/_meson.py:167", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/f2py/_backends/_meson.py:167"}, "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-90151a669117dd58", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/arraysetops.py:299", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/arraysetops.py:299"}, "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-14e8c78c3b3d070c", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/_datasource.py:309", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/_datasource.py:309"}, "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-36319b9ef2009f87", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/nanfunctions.py:1730", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/nanfunctions.py:1730"}, "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-ecd416f1aaffe37f", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/format.py:382", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/format.py:382"}, "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-1f35d8979353679e", "name": "Commented-code block (8 lines) in pydeps/numpy/lib/npyio.py:236", "shortDescription": {"text": "Commented-code block (8 lines) in pydeps/numpy/lib/npyio.py:236"}, "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-75d8db3f6709eb69", "name": "Commented-code block (7 lines) in pydeps/numpy/lib/function_base.py:56", "shortDescription": {"text": "Commented-code block (7 lines) in pydeps/numpy/lib/function_base.py:56"}, "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-869b19662afba480", "name": "Legacy-named symbol `a_copy` in pydeps/numpy/lib/tests/test_function_base.py:258", "shortDescription": {"text": "Legacy-named symbol `a_copy` in pydeps/numpy/lib/tests/test_function_base.py:258"}, "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-f50beffcc3a0bb10", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_function_base.py:1872", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_function_base.py:1872"}, "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-595050270195da86", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_io.py:298", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_io.py:298"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ae8688330a31546", "name": "Legacy-named symbol `test_drop_metadata_identity_and_copy` in pydeps/numpy/lib/tests/test_utils.py:222", "shortDescription": {"text": "Legacy-named symbol `test_drop_metadata_identity_and_copy` in pydeps/numpy/lib/tests/test_utils.py:222"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af4f268f2f23c14e", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_loadtxt.py:897", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_loadtxt.py:897"}, "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-b828880a5ee470d1", "name": "Legacy-named symbol `is_deprecated` in pydeps/numpy/lib/tests/test__datasource.py:342", "shortDescription": {"text": "Legacy-named symbol `is_deprecated` in pydeps/numpy/lib/tests/test__datasource.py:342"}, "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-ab5d868cd98d9a0e", "name": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test__datasource.py:338", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test__datasource.py:338"}, "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-b1d69c8dfc60f074", "name": "Stub function `example` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/__init__.py:20", "shortDescription": {"text": "Stub function `example` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/__init__.py:20"}, "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-0a8280bbff7d8557", "name": "Commented-code block (11 lines) in pydeps/numpy/_utils/_pep440.py:20", "shortDescription": {"text": "Commented-code block (11 lines) in pydeps/numpy/_utils/_pep440.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-a5728db8997fd916", "name": "Stub function `local` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/_pep440.py:186", "shortDescription": {"text": "Stub function `local` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/_pep440.py:186"}, "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-aab33307f956cca4", "name": "Stub function `domain` (body is just `pass`/`return`) \u2014 pydeps/numpy/polynomial/_polybase.py:116", "shortDescription": {"text": "Stub function `domain` (body is just `pass`/`return`) \u2014 pydeps/numpy/polynomial/_polybase.py:116"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb934abb198ed3ad", "name": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_symbol.py:155", "shortDescription": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_symbol.py:155"}, "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-3ffcf74a37dd0b7e", "name": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_classes.py:420", "shortDescription": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_classes.py:420"}, "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-ddfc3a099127c681", "name": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_polynomial.py:46", "shortDescription": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_polynomial.py:46"}, "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-824faaacafe66ddd", "name": "Commented-code block (6 lines) in pydeps/numpy/array_api/linalg.py:294", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/array_api/linalg.py:294"}, "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-c66ac7a5e7f1a480", "name": "Commented-code block (6 lines) in pydeps/numpy/array_api/_array_object.py:241", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/array_api/_array_object.py:241"}, "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-8c9737d98cffd30c", "name": "Commented-code block (7 lines) in pydeps/numpy/array_api/_dtypes.py:93", "shortDescription": {"text": "Commented-code block (7 lines) in pydeps/numpy/array_api/_dtypes.py:93"}, "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-10f5ece41b1a5ff4", "name": "Legacy-named symbol `test_reshape_copy` in pydeps/numpy/array_api/tests/test_manipulation_functions.py:25", "shortDescription": {"text": "Legacy-named symbol `test_reshape_copy` in pydeps/numpy/array_api/tests/test_manipulation_functions.py:25"}, "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-f8fdbf394c340cfe", "name": "Legacy-named symbol `test_asarray_copy` in pydeps/numpy/array_api/tests/test_creation_functions.py:40", "shortDescription": {"text": "Legacy-named symbol `test_asarray_copy` in pydeps/numpy/array_api/tests/test_creation_functions.py:40"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d310c063e870faf3", "name": "Commented-code block (5 lines) in pydeps/numpy/_typing/_array_like.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/_typing/_array_like.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aa9d90bdc146e682", "name": "Commented-code block (5 lines) in pydeps/numpy/random/tests/test_generator_mt19937.py:218", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/random/tests/test_generator_mt19937.py:218"}, "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-96fb6e80d7042d92", "name": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_random.py:351", "shortDescription": {"text": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_random.py:351"}, "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-173f99c64a2ede8a", "name": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_random.py:253", "shortDescription": {"text": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_random.py:253"}, "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-743ca61d160c0208", "name": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_randomstate.py:539", "shortDescription": {"text": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_randomstate.py:539"}, "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-3774fe692404bc15", "name": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_randomstate.py:397", "shortDescription": {"text": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_randomstate.py:397"}, "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-11d8490aee29a097", "name": "Commented-code block (5 lines) in pydeps/numpy/core/__init__.py:130", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/__init__.py:130"}, "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-c42c7d68870b2c26", "name": "Commented-code block (7 lines) in pydeps/numpy/core/numeric.py:2337", "shortDescription": {"text": "Commented-code block (7 lines) in pydeps/numpy/core/numeric.py:2337"}, "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-f4173f476e05a367", "name": "Commented-code block (6 lines) in pydeps/numpy/core/records.py:458", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/records.py:458"}, "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-e3e68f8788bd18dd", "name": "Commented-code block (5 lines) in pydeps/numpy/core/defchararray.py:327", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/defchararray.py:327"}, "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-c3a0a79e60dc3f75", "name": "Commented-code block (5 lines) in pydeps/numpy/core/arrayprint.py:12", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/arrayprint.py:12"}, "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-4e8c3ff463437d89", "name": "Commented-code block (6 lines) in pydeps/numpy/core/einsumfunc.py:697", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/einsumfunc.py:697"}, "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-1fbc3e25bb20711c", "name": "Legacy-named symbol `ary_copy` in pydeps/numpy/core/_internal.py:428", "shortDescription": {"text": "Legacy-named symbol `ary_copy` in pydeps/numpy/core/_internal.py:428"}, "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-09d62c6ce446bca1", "name": "Commented-code block (5 lines) in pydeps/numpy/core/_internal.py:82", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/_internal.py:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa10f2b30e2ad426", "name": "Legacy-named symbol `test_deprecated` in pydeps/numpy/core/tests/test_array_coercion.py:843", "shortDescription": {"text": "Legacy-named symbol `test_deprecated` in pydeps/numpy/core/tests/test_array_coercion.py:843"}, "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-6390246cc3cb625a", "name": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_array_coercion.py:448", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_array_coercion.py:448"}, "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-f220306e32dba226", "name": "Commented-code block (11 lines) in pydeps/numpy/core/tests/test_einsum.py:793", "shortDescription": {"text": "Commented-code block (11 lines) in pydeps/numpy/core/tests/test_einsum.py:793"}, "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-a7794f798e2c12a6", "name": "Legacy-named symbol `test_returns_copy` in pydeps/numpy/core/tests/test_shape_base.py:229", "shortDescription": {"text": "Legacy-named symbol `test_returns_copy` in pydeps/numpy/core/tests/test_shape_base.py:229"}, "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-03020fca412850cb", "name": "Commented-code block (8 lines) in pydeps/numpy/core/tests/test_numeric.py:849", "shortDescription": {"text": "Commented-code block (8 lines) in pydeps/numpy/core/tests/test_numeric.py:849"}, "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-d3c5a8ccfeb7c3af", "name": "Legacy-named symbol `test_copy` in pydeps/numpy/core/tests/test_multiarray.py:2257", "shortDescription": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/core/tests/test_multiarray.py:2257"}, "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-b1b96e6573b0e2e9", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_multiarray.py:545", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_multiarray.py:545"}, "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-c1658fe91245a698", "name": "Legacy-named symbol `no_copy` in pydeps/numpy/core/tests/test_indexing.py:873", "shortDescription": {"text": "Legacy-named symbol `no_copy` in pydeps/numpy/core/tests/test_indexing.py:873"}, "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-e16c18bff50096cf", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_indexing.py:495", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_indexing.py:495"}, "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-d38d7e3ed813e671", "name": "Legacy-named symbol `a_copy` in pydeps/numpy/core/tests/test_ufunc.py:1726", "shortDescription": {"text": "Legacy-named symbol `a_copy` in pydeps/numpy/core/tests/test_ufunc.py:1726"}, "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-14e4bc94c99bf3ef", "name": "Commented-code block (12 lines) in pydeps/numpy/core/tests/test_ufunc.py:1771", "shortDescription": {"text": "Commented-code block (12 lines) in pydeps/numpy/core/tests/test_ufunc.py:1771"}, "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-7b080ac3ae330c6d", "name": "Legacy-named symbol `test_iter_copy` in pydeps/numpy/core/tests/test_nditer.py:1347", "shortDescription": {"text": "Legacy-named symbol `test_iter_copy` in pydeps/numpy/core/tests/test_nditer.py:1347"}, "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-41bc02fe09369c63", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_nditer.py:1429", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_nditer.py:1429"}, "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-71f1621c6e3e2caa", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_scalarprint.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_scalarprint.py:51"}, "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-bb352ecd0f530821", "name": "Legacy-named symbol `arr_copy` in pydeps/numpy/core/tests/test_item_selection.py:113", "shortDescription": {"text": "Legacy-named symbol `arr_copy` in pydeps/numpy/core/tests/test_item_selection.py:113"}, "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-ed293c58b3cf4b2d", "name": "Legacy-named symbol `assert_deprecated` in pydeps/numpy/core/tests/test_deprecations.py:52", "shortDescription": {"text": "Legacy-named symbol `assert_deprecated` in pydeps/numpy/core/tests/test_deprecations.py:52"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-489fa151fe915d5d", "name": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_deprecations.py:39", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_deprecations.py:39"}, "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-a4b1841efc887eed", "name": "Legacy-named symbol `OverriddenArrayOld` in pydeps/numpy/core/tests/test_umath.py:3609", "shortDescription": {"text": "Legacy-named symbol `OverriddenArrayOld` in pydeps/numpy/core/tests/test_umath.py:3609"}, "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-5ea4e628c3f1220d", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_umath.py:4500", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_umath.py:4500"}, "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-168ffc2d5d499c08", "name": "Legacy-named symbol `test_recarray_copy` in pydeps/numpy/core/tests/test_regression.py:561", "shortDescription": {"text": "Legacy-named symbol `test_recarray_copy` in pydeps/numpy/core/tests/test_regression.py:561"}, "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-9223e76c425cc587", "name": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_regression.py:1684", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_regression.py:1684"}, "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-806db0b013e1528b", "name": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_scalarmath.py:612", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_scalarmath.py:612"}, "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-c0ad9f83d88cba93", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/unixccompiler.py:66", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/unixccompiler.py:66"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-b348a27f672e44c4", "name": "Commented-code block (5 lines) in pydeps/numpy/distutils/ccompiler.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/ccompiler.py:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aad44e9a1b106f69", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/lib2def.py:66", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/lib2def.py:66"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-1dcdb78b3b050cd8", "name": "Commented-code block (8 lines) in pydeps/numpy/distutils/misc_util.py:325", "shortDescription": {"text": "Commented-code block (8 lines) in pydeps/numpy/distutils/misc_util.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-80bb272bbbe0c54b", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/misc_util.py:418", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/misc_util.py:418"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-09111e6ff3d0f8a4", "name": "Commented-code block (6 lines) in pydeps/numpy/distutils/core.py:95", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/core.py:95"}, "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-0f9621cd4f71a995", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/exec_command.py:283", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/exec_command.py:283"}, "fullDescription": {"text": "`subprocess.Popen(...)` 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-721f2f677c789fdc", "name": "Commented-code block (6 lines) in pydeps/numpy/distutils/ccompiler_opt.py:2489", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/ccompiler_opt.py:2489"}, "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-574cb6498e6f0379", "name": "Commented-code block (5 lines) in pydeps/numpy/distutils/mingw32ccompiler.py:19", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/mingw32ccompiler.py:19"}, "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-665544414f8ab0de", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/mingw32ccompiler.py:221", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/mingw32ccompiler.py:221"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-c4116a1594546c21", "name": "Commented-code block (10 lines) in pydeps/numpy/distutils/cpuinfo.py:674", "shortDescription": {"text": "Commented-code block (10 lines) in pydeps/numpy/distutils/cpuinfo.py:674"}, "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-c6dc2ef8568f07a6", "name": "Commented-code block (5 lines) in pydeps/numpy/distutils/tests/test_exec_command.py:59", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/tests/test_exec_command.py:59"}, "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-fd6a70b573c6387d", "name": "Commented-code block (9 lines) in pydeps/numpy/distutils/fcompiler/__init__.py:93", "shortDescription": {"text": "Commented-code block (9 lines) in pydeps/numpy/distutils/fcompiler/__init__.py:93"}, "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-c9a5fd779b2304fc", "name": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/vast.py:30", "shortDescription": {"text": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/vast.py:30"}, "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-ad42dbc1f1b82513", "name": "Commented-code block (5 lines) in pydeps/numpy/distutils/fcompiler/gnu.py:119", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/fcompiler/gnu.py:119"}, "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-76a256455ec461c9", "name": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/none.py:21", "shortDescription": {"text": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/none.py:21"}, "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-c25783ffdf29232e", "name": "Commented-code block (7 lines) in pydeps/numpy/distutils/command/install.py:36", "shortDescription": {"text": "Commented-code block (7 lines) in pydeps/numpy/distutils/command/install.py:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-844229a1e605c699", "name": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_clib.py:127", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_clib.py:127"}, "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-c39cac394244f338", "name": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/config.py:468", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/config.py:468"}, "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-1ef4900e3aacf85a", "name": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/command/config.py:474", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/command/config.py:474"}, "fullDescription": {"text": "`subprocess.check_output(...)` 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-526433913a61357b", "name": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_ext.py:155", "shortDescription": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_ext.py:155"}, "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-b49d4542f0d2e509", "name": "Commented-code block (15 lines) in pydeps/numpy/ma/core.py:2986", "shortDescription": {"text": "Commented-code block (15 lines) in pydeps/numpy/ma/core.py:2986"}, "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-ac2e245871d16372", "name": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_subclassing.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_subclassing.py:75"}, "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-2c91b32eaa33f881", "name": "Legacy-named symbol `test_copy` in pydeps/numpy/ma/tests/test_core.py:399", "shortDescription": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/ma/tests/test_core.py:399"}, "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-b94a5f1123dd6905", "name": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_core.py:2424", "shortDescription": {"text": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_core.py:2424"}, "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-a8f6fe6ea58e608f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mobile_app/sw.js:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mobile_app/sw.js:38"}, "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-862177e3899cf406", "name": "Legacy-named symbol `rf_new_customer_v1` in mobile_app/api.py:6", "shortDescription": {"text": "Legacy-named symbol `rf_new_customer_v1` in mobile_app/api.py:6"}, "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-500e3b7d9fe8faf0", "name": "76 env vars used in code but missing from .env.example", "shortDescription": {"text": "76 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ABSOFT`, `ACCELERATE`, `ADVISOR_ENGINE`, `AI_ENGINE`, `ANYTHING_LLM_WORKSPACE`, `APPROVAL_LINE`, `ATLAS_VERSION`, `AURION_HOLD_SECONDS` + 68 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlease_logic_sumaho8.py:red_label, lease_logic_sumaho12.py:red_label, _archive/lease_logic_sumaho11.py:red_label\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nlease_logic_sumaho8.py:load_json_data, _archive/lease_logic_sumaho11.py:load_json_data\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-69e0eb380532e369", "name": "FastAPI POST `forecast` without auth dependency \u2014 backend.py:200", "shortDescription": {"text": "FastAPI POST `forecast` without auth dependency \u2014 backend.py:200"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6028915293182366", "name": "FastAPI POST `ocr_financial` without auth dependency \u2014 api/routers/ocr.py:66", "shortDescription": {"text": "FastAPI POST `ocr_financial` without auth dependency \u2014 api/routers/ocr.py:66"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f41049c0d5e0e22a", "name": "Flask mutation route `result` without `@login_required` \u2014 web/app.py:91", "shortDescription": {"text": "Flask mutation route `result` without `@login_required` \u2014 web/app.py:91"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfce3b7867735099", "name": "FastAPI POST `predict` without auth dependency \u2014 mobile_app/api.py:924", "shortDescription": {"text": "FastAPI POST `predict` without auth dependency \u2014 mobile_app/api.py:924"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f4787fa249c2d8a1", "name": "FastAPI PATCH `update_case_result` without auth dependency \u2014 mobile_app/api.py:1344", "shortDescription": {"text": "FastAPI PATCH `update_case_result` without auth dependency \u2014 mobile_app/api.py:1344"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1741030b267f8316", "name": "FastAPI DELETE `delete_case_record` without auth dependency \u2014 mobile_app/api.py:1361", "shortDescription": {"text": "FastAPI DELETE `delete_case_record` without auth dependency \u2014 mobile_app/api.py:1361"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-515eeadf282f4b56", "name": "FastAPI POST `advisor_strategy` without auth dependency \u2014 mobile_app/api.py:1367", "shortDescription": {"text": "FastAPI POST `advisor_strategy` without auth dependency \u2014 mobile_app/api.py:1367"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d16eb64e24da50f2", "name": "FastAPI POST `chat` without auth dependency \u2014 mobile_app/api.py:1399", "shortDescription": {"text": "FastAPI POST `chat` without auth dependency \u2014 mobile_app/api.py:1399"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-48977a0af6f11b15", "name": "FastAPI POST `gunshi_stream_proxy` without auth dependency \u2014 mobile_app/api.py:1430", "shortDescription": {"text": "FastAPI POST `gunshi_stream_proxy` without auth dependency \u2014 mobile_app/api.py:1430"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5ea2e113ff250f5f", "name": "Unused endpoint: POST /forecast", "shortDescription": {"text": "Unused endpoint: POST /forecast"}, "fullDescription": {"text": "`backend.py` declares `POST /forecast` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`api/main.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e857b262f6415948", "name": "Unused endpoint: POST /api/industry/suggest", "shortDescription": {"text": "Unused endpoint: POST /api/industry/suggest"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/industry/suggest` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7052b81ec6ddced7", "name": "Unused endpoint: POST /api/score/calculate", "shortDescription": {"text": "Unused endpoint: POST /api/score/calculate"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/score/calculate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a90f6076c319bc0a", "name": "Unused endpoint: POST /api/score/full", "shortDescription": {"text": "Unused endpoint: POST /api/score/full"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/score/full` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2acb252b22ca86e7", "name": "Unused endpoint: POST /api/deal/closure-probability", "shortDescription": {"text": "Unused endpoint: POST /api/deal/closure-probability"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/deal/closure-probability` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9921eeb3777a71fa", "name": "Unused endpoint: GET /api/industry/stats", "shortDescription": {"text": "Unused endpoint: GET /api/industry/stats"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/industry/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54bf0075b63722c4", "name": "Unused endpoint: GET /api/cases", "shortDescription": {"text": "Unused endpoint: GET /api/cases"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/cases` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c14d670fd7b8922f", "name": "Unused endpoint: GET /api/batch/template", "shortDescription": {"text": "Unused endpoint: GET /api/batch/template"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/batch/template` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef970373aa2a3fe1", "name": "Unused endpoint: POST /api/asset-finance/evaluate", "shortDescription": {"text": "Unused endpoint: POST /api/asset-finance/evaluate"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/asset-finance/evaluate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16c0cf9711af7c52", "name": "Unused endpoint: POST /api/asset-finance/obsidian-context", "shortDescription": {"text": "Unused endpoint: POST /api/asset-finance/obsidian-context"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/asset-finance/obsidian-context` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd85c6d6bda5f0a9", "name": "Unused endpoint: POST /api/asset-finance/similar-notes", "shortDescription": {"text": "Unused endpoint: POST /api/asset-finance/similar-notes"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/asset-finance/similar-notes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e9990309ca35170", "name": "Unused endpoint: GET /api/knowledge/graph", "shortDescription": {"text": "Unused endpoint: GET /api/knowledge/graph"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/knowledge/graph` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b896782de6f4915", "name": "Unused endpoint: POST /api/asset-finance/save-to-obsidian", "shortDescription": {"text": "Unused endpoint: POST /api/asset-finance/save-to-obsidian"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/asset-finance/save-to-obsidian` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b6420aba44982f34", "name": "Unused endpoint: GET /api/cases/industry-winrate", "shortDescription": {"text": "Unused endpoint: GET /api/cases/industry-winrate"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/cases/industry-winrate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2a40a3b570c1984", "name": "Unused endpoint: GET /api/cases/sales-dept-winrate", "shortDescription": {"text": "Unused endpoint: GET /api/cases/sales-dept-winrate"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/cases/sales-dept-winrate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6768b4a0890a213", "name": "Unused endpoint: GET /api/payment/alerts", "shortDescription": {"text": "Unused endpoint: GET /api/payment/alerts"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/payment/alerts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-571cd2db218f1ccd", "name": "Unused endpoint: POST /api/improvement-log/dismiss", "shortDescription": {"text": "Unused endpoint: POST /api/improvement-log/dismiss"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/improvement-log/dismiss` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b102a2a993ebf5c8", "name": "Unused endpoint: POST /api/improvement-log/review", "shortDescription": {"text": "Unused endpoint: POST /api/improvement-log/review"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/improvement-log/review` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a9e3f17d957d6b10", "name": "Unused endpoint: POST /api/prompt-feedback/rules/register", "shortDescription": {"text": "Unused endpoint: POST /api/prompt-feedback/rules/register"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/prompt-feedback/rules/register` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5af70c992d561fab", "name": "Unused endpoint: GET /api/improvement-pipeline/summary", "shortDescription": {"text": "Unused endpoint: GET /api/improvement-pipeline/summary"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/improvement-pipeline/summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-228a4c4022a34906", "name": "Unused endpoint: GET /api/subsidies", "shortDescription": {"text": "Unused endpoint: GET /api/subsidies"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/subsidies` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e481f51171b16226", "name": "Unused endpoint: GET /api/asset/useful-life-all", "shortDescription": {"text": "Unused endpoint: GET /api/asset/useful-life-all"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/asset/useful-life-all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dbba968f2a419cef", "name": "Unused endpoint: GET /api/asset/useful-life-search", "shortDescription": {"text": "Unused endpoint: GET /api/asset/useful-life-search"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/asset/useful-life-search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-659e581c658bc9bf", "name": "Unused endpoint: POST /api/batch/score", "shortDescription": {"text": "Unused endpoint: POST /api/batch/score"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/batch/score` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bed13197410b2ef", "name": "Unused endpoint: POST /api/batch/save", "shortDescription": {"text": "Unused endpoint: POST /api/batch/save"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/batch/save` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ed875de4385ad79", "name": "Unused endpoint: PATCH /api/cases/{case_id}/result", "shortDescription": {"text": "Unused endpoint: PATCH /api/cases/{case_id}/result"}, "fullDescription": {"text": "`api/main.py` declares `PATCH /api/cases/{case_id}/result` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-774ac6a48a14d284", "name": "Unused endpoint: GET /api/cases/pending", "shortDescription": {"text": "Unused endpoint: GET /api/cases/pending"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/cases/pending` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c1bf1084581c95d", "name": "Unused endpoint: GET /api/cases/{case_id}", "shortDescription": {"text": "Unused endpoint: GET /api/cases/{case_id}"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/cases/{case_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4765d214f91b93d", "name": "Unused endpoint: DELETE /api/cases/operation/clear-all", "shortDescription": {"text": "Unused endpoint: DELETE /api/cases/operation/clear-all"}, "fullDescription": {"text": "`api/main.py` declares `DELETE /api/cases/operation/clear-all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ad1936e478c9033", "name": "Unused endpoint: DELETE /api/cases/{case_id}", "shortDescription": {"text": "Unused endpoint: DELETE /api/cases/{case_id}"}, "fullDescription": {"text": "`api/main.py` declares `DELETE /api/cases/{case_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-449f1fdffc395232", "name": "Unused endpoint: POST /api/gunshi/advise", "shortDescription": {"text": "Unused endpoint: POST /api/gunshi/advise"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/gunshi/advise` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d579aa9fcca5bf82", "name": "Unused endpoint: GET /api/dashboard/stats", "shortDescription": {"text": "Unused endpoint: GET /api/dashboard/stats"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/dashboard/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4a840d88063213c", "name": "Unused endpoint: GET /api/lease-news/focus", "shortDescription": {"text": "Unused endpoint: GET /api/lease-news/focus"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/lease-news/focus` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-961e67ab3c0ab5ad", "name": "Unused endpoint: GET /api/lease-news/brief", "shortDescription": {"text": "Unused endpoint: GET /api/lease-news/brief"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/lease-news/brief` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e50898c7281c0145", "name": "Unused endpoint: GET /api/lease-system-gaps", "shortDescription": {"text": "Unused endpoint: GET /api/lease-system-gaps"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/lease-system-gaps` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9dc142eea2cec6d9", "name": "Unused endpoint: GET /api/department/stats", "shortDescription": {"text": "Unused endpoint: GET /api/department/stats"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/department/stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30d593cb667c820f", "name": "Unused endpoint: GET /api/visual/data", "shortDescription": {"text": "Unused endpoint: GET /api/visual/data"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/visual/data` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b99d38452115f93a", "name": "Unused endpoint: GET /api/similar/data", "shortDescription": {"text": "Unused endpoint: GET /api/similar/data"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/similar/data` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d21951a004c9200c", "name": "Unused endpoint: POST /api/similar/inline", "shortDescription": {"text": "Unused endpoint: POST /api/similar/inline"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/similar/inline` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3da817dac7e59862", "name": "Unused endpoint: POST /api/forecast", "shortDescription": {"text": "Unused endpoint: POST /api/forecast"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/forecast` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a24661626a42a265", "name": "Unused endpoint: POST /api/timesfm/company_score", "shortDescription": {"text": "Unused endpoint: POST /api/timesfm/company_score"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/timesfm/company_score` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-502861ec34485c57", "name": "Unused endpoint: POST /api/timesfm/final_rate", "shortDescription": {"text": "Unused endpoint: POST /api/timesfm/final_rate"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/timesfm/final_rate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8660b2c173a9a207", "name": "Unused endpoint: POST /api/timesfm/base_rate", "shortDescription": {"text": "Unused endpoint: POST /api/timesfm/base_rate"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/timesfm/base_rate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f8e697d84b95297", "name": "Unused endpoint: POST /api/timesfm/base_rate_all", "shortDescription": {"text": "Unused endpoint: POST /api/timesfm/base_rate_all"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/timesfm/base_rate_all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7e9d1f88a79738f", "name": "Unused endpoint: GET /api/analysis/contract_drivers", "shortDescription": {"text": "Unused endpoint: GET /api/analysis/contract_drivers"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/analysis/contract_drivers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05de0143dc4f68dc", "name": "Unused endpoint: GET /api/analysis/quantitative", "shortDescription": {"text": "Unused endpoint: GET /api/analysis/quantitative"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/analysis/quantitative` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f084bded9c4834d", "name": "Unused endpoint: POST /api/analysis/qualitative", "shortDescription": {"text": "Unused endpoint: POST /api/analysis/qualitative"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/analysis/qualitative` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-769cb299fe0d1119", "name": "Unused endpoint: GET /api/settings/corporate_number", "shortDescription": {"text": "Unused endpoint: GET /api/settings/corporate_number"}, "fullDescription": {"text": "`api/main.py` declares `GET /api/settings/corporate_number` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad884b860983a9e9", "name": "Unused endpoint: POST /api/settings/corporate_number", "shortDescription": {"text": "Unused endpoint: POST /api/settings/corporate_number"}, "fullDescription": {"text": "`api/main.py` declares `POST /api/settings/corporate_number` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21740"}, "properties": {"repository": "tune-77/tune_lease_55", "repoUrl": "https://github.com/tune-77/tune_lease_55", "branch": "main"}, "results": [{"ruleId": "scanner-464ac168b47ee897", "level": "note", "message": {"text": "Possibly dead Python function: draw_header"}, "properties": {"repobilityId": "12d994c40f89e225", "scanner": "scanner-primary", "fingerprint": "464ac168b47ee897", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "screening_report.py:490"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd040f02412e36b7", "level": "note", "message": {"text": "Possibly dead Python function: find_item_by_code"}, "properties": {"repobilityId": "0afca859c9c8a4c1", "scanner": "scanner-primary", "fingerprint": "bd040f02412e36b7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "expected_usage_period.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12de2f54a921c13e", "level": "note", "message": {"text": "Possibly dead Python function: generate_agent_crosstalk"}, "properties": {"repobilityId": "4dd9ebdb177131a9", "scanner": "scanner-primary", "fingerprint": "12de2f54a921c13e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent_crosstalk.py:141"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-43926efc93d8a9a4", "level": "note", "message": {"text": "Possibly dead Python function: extract_improvement_suggestions"}, "properties": {"repobilityId": "a2e6c903dacf4f3d", "scanner": "scanner-primary", "fingerprint": "43926efc93d8a9a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent_crosstalk.py:408"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-abec394228fbca34", "level": "note", "message": {"text": "Possibly dead Python function: load_improvement_suggestions"}, "properties": {"repobilityId": "0b1015d92768779c", "scanner": "scanner-primary", "fingerprint": "abec394228fbca34", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent_crosstalk.py:518"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a29d53a0e22e0197", "level": "note", "message": {"text": "Possibly dead Python function: build_graph_context_for_prompt"}, "properties": {"repobilityId": "2160ff1e289411a5", "scanner": "scanner-primary", "fingerprint": "a29d53a0e22e0197", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "novel_graph.py:555"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2827477eb353d31d", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_bayesian"}, "properties": {"repobilityId": "0be5d0beb5970a5d", "scanner": "scanner-primary", "fingerprint": "2827477eb353d31d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:510"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fde122853e256da5", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_kalman"}, "properties": {"repobilityId": "3658c6b27c8e6ad1", "scanner": "scanner-primary", "fingerprint": "fde122853e256da5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:572"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61734d6a62c1f2c8", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_prospect_theory"}, "properties": {"repobilityId": "06498c52ba9a5243", "scanner": "scanner-primary", "fingerprint": "61734d6a62c1f2c8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:626"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3bc3cc0ef6a066a1", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_survival"}, "properties": {"repobilityId": "328f808e2b8b0063", "scanner": "scanner-primary", "fingerprint": "3bc3cc0ef6a066a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:676"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-78f32ffa56526570", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_power_law"}, "properties": {"repobilityId": "d4f14c4e42e43821", "scanner": "scanner-primary", "fingerprint": "78f32ffa56526570", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:723"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a6c87d7f99a3bfa5", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_granger"}, "properties": {"repobilityId": "caf144a2fbeb29b5", "scanner": "scanner-primary", "fingerprint": "a6c87d7f99a3bfa5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:771"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b51cd21a05b7d217", "level": "note", "message": {"text": "Possibly dead Python function: run_experiment_maxent"}, "properties": {"repobilityId": "9d85c49329476ae4", "scanner": "scanner-primary", "fingerprint": "b51cd21a05b7d217", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:821"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1f08eddc43bfef3c", "level": "note", "message": {"text": "Possibly dead Python function: run_weekly_cycle_async"}, "properties": {"repobilityId": "d6caa26d0ece58b6", "scanner": "scanner-primary", "fingerprint": "1f08eddc43bfef3c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:1170"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89f9226776c99233", "level": "note", "message": {"text": "Possibly dead Python function: collect_from_arxiv_async"}, "properties": {"repobilityId": "c719d75905b92a72", "scanner": "scanner-primary", "fingerprint": "89f9226776c99233", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mathematician_agent.py:1218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58b82719d4070da7", "level": "note", "message": {"text": "Possibly dead Python function: render_gunshi"}, "properties": {"repobilityId": "acd5aa704745f349", "scanner": "scanner-primary", "fingerprint": "58b82719d4070da7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "shinsa_gunshi_ui.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f534a76ce791296", "level": "note", "message": {"text": "Possibly dead Python function: red_label"}, "properties": {"repobilityId": "a66de15c39e58917", "scanner": "scanner-primary", "fingerprint": "7f534a76ce791296", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lease_logic_sumaho8.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae0ce9278b57f120", "level": "note", "message": {"text": "Possibly dead Python function: plot_benchmark_comparison"}, "properties": {"repobilityId": "65577c619d4c097e", "scanner": "scanner-primary", "fingerprint": "ae0ce9278b57f120", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lease_logic_sumaho8.py:2050"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cc29c8ce622b2815", "level": "note", "message": {"text": "Possibly dead Python function: plot_indicators_bar"}, "properties": {"repobilityId": "b99fd9ef5a4df006", "scanner": "scanner-primary", "fingerprint": "cc29c8ce622b2815", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lease_logic_sumaho8.py:2358"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70c3df36113e8858", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/ScoreDAG.tsx:53"}, "properties": {"repobilityId": "15dfed0297490110", "scanner": "scanner-primary", "fingerprint": "70c3df36113e8858", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-401a29e65d1f903e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/layout/Sidebar.tsx:190"}, "properties": {"repobilityId": "4fbed5d8e51dbbe4", "scanner": "scanner-primary", "fingerprint": "401a29e65d1f903e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2f7cc7af34df1edf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/components/form/FormGeneral.tsx:220"}, "properties": {"repobilityId": "e6b8062ed55dd2d8", "scanner": "scanner-primary", "fingerprint": "2f7cc7af34df1edf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5a9a4e3ae242cd8a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/GunshiAdvice.tsx:857"}, "properties": {"repobilityId": "9617c106f9ad7745", "scanner": "scanner-primary", "fingerprint": "5a9a4e3ae242cd8a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8300b4ffd300432e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/components/analysis/ReportGenerator.tsx:150"}, "properties": {"repobilityId": "f71eb2606d7a9e3a", "scanner": "scanner-primary", "fingerprint": "8300b4ffd300432e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1c94babff1bd2b22", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/cases/page.tsx:161"}, "properties": {"repobilityId": "dc4534065667caea", "scanner": "scanner-primary", "fingerprint": "1c94babff1bd2b22", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0797ad92cc36d0a2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/knowledge-space/page.tsx:1191"}, "properties": {"repobilityId": "1d2ef9bc355f2e23", "scanner": "scanner-primary", "fingerprint": "0797ad92cc36d0a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-565d1cedf4d41d14", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 frontend/src/app/knowledge-space/page.tsx:1253"}, "properties": {"repobilityId": "b6f97426179a90a9", "scanner": "scanner-primary", "fingerprint": "565d1cedf4d41d14", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-c362be16a1bac8a5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/finance/page.tsx:853"}, "properties": {"repobilityId": "751240dbb24200c1", "scanner": "scanner-primary", "fingerprint": "c362be16a1bac8a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b3e9476612991d7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/department/page.tsx:526"}, "properties": {"repobilityId": "78302d6e3d65cdb7", "scanner": "scanner-primary", "fingerprint": "b3e9476612991d7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5175b13d8d75ab39", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/report/page.tsx:598"}, "properties": {"repobilityId": "10556fe0a7c1ecc5", "scanner": "scanner-primary", "fingerprint": "5175b13d8d75ab39", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-68a459f3eb506921", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/subsidy/page.tsx:250"}, "properties": {"repobilityId": "50aaeb17195bf31d", "scanner": "scanner-primary", "fingerprint": "68a459f3eb506921", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4443e14eb7be63a0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/agent-hub/page.tsx:537"}, "properties": {"repobilityId": "042a961284f76dc9", "scanner": "scanner-primary", "fingerprint": "4443e14eb7be63a0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3b8211c8e6ce309c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/src/app/industry-stats/page.tsx:231"}, "properties": {"repobilityId": "1bfdb17fb12a8999", "scanner": "scanner-primary", "fingerprint": "3b8211c8e6ce309c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0977cca8ba31adb0", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-bookworm-slim"}, "properties": {"repobilityId": "d6e3c3033d5243df", "scanner": "scanner-primary", "fingerprint": "0977cca8ba31adb0", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-397fd4515e7f8f0e", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim-bookworm"}, "properties": {"repobilityId": "6a78e73e1663ff38", "scanner": "scanner-primary", "fingerprint": "397fd4515e7f8f0e", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-397fd4515e7f8f0e", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim-bookworm"}, "properties": {"repobilityId": "37c5543e26a573b4", "scanner": "scanner-primary", "fingerprint": "397fd4515e7f8f0e", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-77a464701f01cedf", "level": "error", "message": {"text": "Possible secret in README.md"}, "properties": {"repobilityId": "e1fce964e32a599e", "scanner": "scanner-primary", "fingerprint": "77a464701f01cedf", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "README.md"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-065e94e8a2f2f0e9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in backend.py:39"}, "properties": {"repobilityId": "3cfc6c43d5a2e38f", "scanner": "scanner-primary", "fingerprint": "065e94e8a2f2f0e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-4c8af33a97f323d7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/GunshiAdvice.tsx:857"}, "properties": {"repobilityId": "7bb9b6bf84714a70", "scanner": "scanner-primary", "fingerprint": "4c8af33a97f323d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/analysis/GunshiAdvice.tsx"}, "region": {"startLine": 857}}}]}, {"ruleId": "scanner-80e5360dc20c1468", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/components/analysis/ReportGenerator.tsx:150"}, "properties": {"repobilityId": "0dbc424fe139e2dd", "scanner": "scanner-primary", "fingerprint": "80e5360dc20c1468", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/analysis/ReportGenerator.tsx"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-2dd111fdb1bea939", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/src/app/similar/page.tsx:134"}, "properties": {"repobilityId": "9e63599c4f51ea83", "scanner": "scanner-primary", "fingerprint": "2dd111fdb1bea939", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/app/similar/page.tsx"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-bd4d9e6ed16c6f74", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in scripts/lease_system_gap_analyzer.py:265"}, "properties": {"repobilityId": "024cff5de6fd5260", "scanner": "scanner-primary", "fingerprint": "bd4d9e6ed16c6f74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/lease_system_gap_analyzer.py"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-9ddf0e75911ce9d2", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in pydeps/numpy/testing/_private/utils.py:1119"}, "properties": {"repobilityId": "824f46d3c0a9e974", "scanner": "scanner-primary", "fingerprint": "9ddf0e75911ce9d2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/testing/_private/utils.py"}, "region": {"startLine": 1119}}}]}, {"ruleId": "scanner-7a0f59cbdaea9259", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/auxfuncs.py:607"}, "properties": {"repobilityId": "f4c16869186244a3", "scanner": "scanner-primary", "fingerprint": "7a0f59cbdaea9259", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/f2py/auxfuncs.py"}, "region": {"startLine": 607}}}]}, {"ruleId": "scanner-b56a91293ce5dbf0", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/f2py/capi_maps.py:157"}, "properties": {"repobilityId": "3c4abd77a9c4261c", "scanner": "scanner-primary", "fingerprint": "b56a91293ce5dbf0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/f2py/capi_maps.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-c94dc708a5f5320d", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/lib/ufunclike.py:18"}, "properties": {"repobilityId": "e484f06aa69f3ecd", "scanner": "scanner-primary", "fingerprint": "c94dc708a5f5320d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/lib/ufunclike.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-2cd88e6579e149a1", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/fromnumeric.py:3832"}, "properties": {"repobilityId": "5252df1c1405a0dc", "scanner": "scanner-primary", "fingerprint": "2cd88e6579e149a1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/core/fromnumeric.py"}, "region": {"startLine": 3832}}}]}, {"ruleId": "scanner-5245cf8f710e73ba", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in pydeps/numpy/core/multiarray.py:82"}, "properties": {"repobilityId": "fd3aa6f5211f6398", "scanner": "scanner-primary", "fingerprint": "5245cf8f710e73ba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/core/multiarray.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-9cdaa824f5f83b4d", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in pydeps/numpy/distutils/lib2def.py:62"}, "properties": {"repobilityId": "e9688655b07dafc1", "scanner": "scanner-primary", "fingerprint": "9cdaa824f5f83b4d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/distutils/lib2def.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-1292496e5c007846", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/distutils/misc_util.py:157"}, "properties": {"repobilityId": "84412c1d7343e6c2", "scanner": "scanner-primary", "fingerprint": "1292496e5c007846", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/distutils/misc_util.py"}, "region": {"startLine": 157}}}]}, {"ruleId": "scanner-afd69f1f10eda2d7", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in pydeps/numpy/distutils/mingw32ccompiler.py:67"}, "properties": {"repobilityId": "0a99513866d67cc2", "scanner": "scanner-primary", "fingerprint": "afd69f1f10eda2d7", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/distutils/mingw32ccompiler.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-53d7781f7bc6ffd1", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pydeps/numpy/ma/timer_comparison.py:442"}, "properties": {"repobilityId": "ccc3515df6093115", "scanner": "scanner-primary", "fingerprint": "53d7781f7bc6ffd1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pydeps/numpy/ma/timer_comparison.py"}, "region": {"startLine": 442}}}]}, {"ruleId": "scanner-0759fa1bf2ed50ff", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in web/app.py:200"}, "properties": {"repobilityId": "18733bb1d5822225", "scanner": "scanner-primary", "fingerprint": "0759fa1bf2ed50ff", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-95cddfed93d37ec3", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in .claude/skills/security-and-hardening/SKILL.md:50"}, "properties": {"repobilityId": "93b7c6441cbb4d2c", "scanner": "scanner-primary", "fingerprint": "95cddfed93d37ec3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/security-and-hardening/SKILL.md"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-8482cefba70934ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in .claude/skills/security-and-hardening/SKILL.md:97"}, "properties": {"repobilityId": "9f2f2dd12f2ee427", "scanner": "scanner-primary", "fingerprint": "8482cefba70934ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/security-and-hardening/SKILL.md"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-70b7d67591caaa47", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in mobile_app/index.html:1599"}, "properties": {"repobilityId": "454a2cbbae959a97", "scanner": "scanner-primary", "fingerprint": "70b7d67591caaa47", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/index.html"}, "region": {"startLine": 1599}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-5887e32c6bab5674", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0634248be562bdc9", "scanner": "scanner-primary", "fingerprint": "5887e32c6bab5674", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ledger-sync.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0b1741e84d152089", "level": "note", "message": {"text": "Very large file: screening_report.py (1308 lines)"}, "properties": {"repobilityId": "6b17b3b6d7ccf93f", "scanner": "scanner-primary", "fingerprint": "0b1741e84d152089", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e6df35238f979b16", "level": "note", "message": {"text": "Very large file: mathematician_agent.py (1243 lines)"}, "properties": {"repobilityId": "03d590ca8378b0ca", "scanner": "scanner-primary", "fingerprint": "e6df35238f979b16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4802b961b5a51a9d", "level": "note", "message": {"text": "Very large file: shinsa_gunshi_ui.py (1322 lines)"}, "properties": {"repobilityId": "15787669a7fd4df5", "scanner": "scanner-primary", "fingerprint": "4802b961b5a51a9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d4f41cf80a95eaa", "level": "note", "message": {"text": "Very large file: lease_logic_sumaho8.py (5633 lines)"}, "properties": {"repobilityId": "0d66d6ecd0db7e9e", "scanner": "scanner-primary", "fingerprint": "9d4f41cf80a95eaa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-56fd6481cc48c3d0", "level": "note", "message": {"text": "Very large file: soul_factor_miner.py (1579 lines)"}, "properties": {"repobilityId": "45fd56b4175fa5c9", "scanner": "scanner-primary", "fingerprint": "56fd6481cc48c3d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b5b8546e649540b4", "level": "note", "message": {"text": "Very large file: analysis_regression.py (2162 lines)"}, "properties": {"repobilityId": "b4315a3064392455", "scanner": "scanner-primary", "fingerprint": "b5b8546e649540b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2ae7d1d3800e6147", "level": "note", "message": {"text": "Very large file: novelist_agent.py (1522 lines)"}, "properties": {"repobilityId": "7de3c8e5301c7a66", "scanner": "scanner-primary", "fingerprint": "2ae7d1d3800e6147", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-23e89463137cf225", "level": "note", "message": {"text": "Very large file: scoring_core.py (1187 lines)"}, "properties": {"repobilityId": "2e720eadf1b09f7e", "scanner": "scanner-primary", "fingerprint": "23e89463137cf225", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-643a848ff147cc7f", "level": "note", "message": {"text": "Very large file: lease_intelligence_mind.py (1718 lines)"}, "properties": {"repobilityId": "4280861bd01442fe", "scanner": "scanner-primary", "fingerprint": "643a848ff147cc7f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-63d75ed1d6de3057", "level": "note", "message": {"text": "Very large file: ai_chat.py (1395 lines)"}, "properties": {"repobilityId": "965542d9fb9e4bb4", "scanner": "scanner-primary", "fingerprint": "63d75ed1d6de3057", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-28ad44fde9632dcb", "level": "note", "message": {"text": "Very large file: data_cases.py (1358 lines)"}, "properties": {"repobilityId": "505dfbdff18ab75d", "scanner": "scanner-primary", "fingerprint": "28ad44fde9632dcb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80452799b951463f", "level": "note", "message": {"text": "Very large file: slack_screening.py (1164 lines)"}, "properties": {"repobilityId": "9c2a94b8fc938617", "scanner": "scanner-primary", "fingerprint": "80452799b951463f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4511548d97c497d3", "level": "note", "message": {"text": "Very large file: charts.py (1271 lines)"}, "properties": {"repobilityId": "ba57b35bd0b9f202", "scanner": "scanner-primary", "fingerprint": "4511548d97c497d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9ffb0307dc1949e", "level": "note", "message": {"text": "Very large file: shinsa_gunshi_logic.py (1281 lines)"}, "properties": {"repobilityId": "663bc2b8ab8fa3ed", "scanner": "scanner-primary", "fingerprint": "c9ffb0307dc1949e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5214235a7da50c44", "level": "note", "message": {"text": "Very large file: lease_logic_sumaho12.py (1912 lines)"}, "properties": {"repobilityId": "7094a426d4e0d15a", "scanner": "scanner-primary", "fingerprint": "5214235a7da50c44", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-774ae858eb684889", "level": "note", "message": {"text": "Very large file: frontend/src/app/knowledge-space/page.tsx (1530 lines)"}, "properties": {"repobilityId": "06847386b0e8c855", "scanner": "scanner-primary", "fingerprint": "774ae858eb684889", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a1a47566ebafc38", "level": "note", "message": {"text": "Very large file: frontend/src/app/home/page.tsx (1204 lines)"}, "properties": {"repobilityId": "dd80726c3404aa45", "scanner": "scanner-primary", "fingerprint": "1a1a47566ebafc38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60b87b88a793e027", "level": "note", "message": {"text": "Very large file: frontend/src/app/faq/page.tsx (1217 lines)"}, "properties": {"repobilityId": "8cc27589063be8a8", "scanner": "scanner-primary", "fingerprint": "60b87b88a793e027", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-97ccb85190daa75f", "level": "note", "message": {"text": "Very large file: api/main.py (7870 lines)"}, "properties": {"repobilityId": "6250d566277af3b1", "scanner": "scanner-primary", "fingerprint": "97ccb85190daa75f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-015427b565a1c4bb", "level": "note", "message": {"text": "Very large file: _archive/lease_logic_sumaho11.py (4805 lines)"}, "properties": {"repobilityId": "38f7f69282f7fec8", "scanner": "scanner-primary", "fingerprint": "015427b565a1c4bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-993e2f506779d7ae", "level": "note", "message": {"text": "Very large file: scripts/aurion_core_daily.py (1411 lines)"}, "properties": {"repobilityId": "602f22aa0dc86032", "scanner": "scanner-primary", "fingerprint": "993e2f506779d7ae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3d23805770f0dfc5", "level": "note", "message": {"text": "Very large file: components/dashboard.py (1943 lines)"}, "properties": {"repobilityId": "6c12244d3001ce43", "scanner": "scanner-primary", "fingerprint": "3d23805770f0dfc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-879d040b1813f922", "level": "note", "message": {"text": "Very large file: components/form_apply.py (881 lines)"}, "properties": {"repobilityId": "23ef1d6887f0566a", "scanner": "scanner-primary", "fingerprint": "879d040b1813f922", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a208b3dbecf9be4a", "level": "note", "message": {"text": "Very large file: components/analysis_results.py (2691 lines)"}, "properties": {"repobilityId": "4225a34ff7cab403", "scanner": "scanner-primary", "fingerprint": "a208b3dbecf9be4a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-106d17d7f16a141c", "level": "note", "message": {"text": "Very large file: components/chat_wizard.py (1079 lines)"}, "properties": {"repobilityId": "d9bce67ee214c7a1", "scanner": "scanner-primary", "fingerprint": "106d17d7f16a141c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-76e0330eef44720f", "level": "note", "message": {"text": "Very large file: components/agent_hub.py (2227 lines)"}, "properties": {"repobilityId": "00561fd35a5764ef", "scanner": "scanner-primary", "fingerprint": "76e0330eef44720f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d34ba1729fbc4af", "level": "note", "message": {"text": "Very large file: components/score_calculation.py (1583 lines)"}, "properties": {"repobilityId": "632914e749595262", "scanner": "scanner-primary", "fingerprint": "5d34ba1729fbc4af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4ed430dd6de0c82f", "level": "note", "message": {"text": "Very large file: components/agent_team.py (1954 lines)"}, "properties": {"repobilityId": "8069981e05eaadbc", "scanner": "scanner-primary", "fingerprint": "4ed430dd6de0c82f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f4e241e1ae44d552", "level": "note", "message": {"text": "Very large file: pydeps/numpy/testing/tests/test_utils.py (1626 lines)"}, "properties": {"repobilityId": "fa9347476d6468a6", "scanner": "scanner-primary", "fingerprint": "f4e241e1ae44d552", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4103a3d4b9b0db1", "level": "note", "message": {"text": "Very large file: pydeps/numpy/testing/_private/utils.py (2509 lines)"}, "properties": {"repobilityId": "1f48420d7506c95f", "scanner": "scanner-primary", "fingerprint": "d4103a3d4b9b0db1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bf64887c4c96c8e6", "level": "note", "message": {"text": "Very large file: pydeps/numpy/f2py/cfuncs.py (1536 lines)"}, "properties": {"repobilityId": "5bfc6225430c9ba6", "scanner": "scanner-primary", "fingerprint": "bf64887c4c96c8e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a0f56e9ee91039da", "level": "note", "message": {"text": "Very large file: pydeps/numpy/f2py/crackfortran.py (3767 lines)"}, "properties": {"repobilityId": "12ed13b0b4980ce2", "scanner": "scanner-primary", "fingerprint": "a0f56e9ee91039da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2a968974beb6d897", "level": "note", "message": {"text": "Very large file: pydeps/numpy/f2py/symbolic.py (1517 lines)"}, "properties": {"repobilityId": "8cda120d429e9b33", "scanner": "scanner-primary", "fingerprint": "2a968974beb6d897", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6325580833a4f57a", "level": "note", "message": {"text": "Very large file: pydeps/numpy/f2py/rules.py (1568 lines)"}, "properties": {"repobilityId": "4e008985a0d6e31f", "scanner": "scanner-primary", "fingerprint": "6325580833a4f57a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2982598089363548", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/recfunctions.py (1673 lines)"}, "properties": {"repobilityId": "58684caf1f9ddb6b", "scanner": "scanner-primary", "fingerprint": "2982598089363548", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-231a36058f31d7bf", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/nanfunctions.py (1887 lines)"}, "properties": {"repobilityId": "28ded9e312f14ad1", "scanner": "scanner-primary", "fingerprint": "231a36058f31d7bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3d3a828096511946", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/npyio.py (2547 lines)"}, "properties": {"repobilityId": "51aa8dab04a09466", "scanner": "scanner-primary", "fingerprint": "3d3a828096511946", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4424e6de1d0e9e41", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/function_base.py (5733 lines)"}, "properties": {"repobilityId": "99c5323d111c7809", "scanner": "scanner-primary", "fingerprint": "4424e6de1d0e9e41", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aca24f4b5b072c9e", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/tests/test_function_base.py (4201 lines)"}, "properties": {"repobilityId": "87bb86569f2890a9", "scanner": "scanner-primary", "fingerprint": "aca24f4b5b072c9e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aba34298ffe3cf08", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/tests/test_io.py (2775 lines)"}, "properties": {"repobilityId": "9ce20ccfbc5b16e6", "scanner": "scanner-primary", "fingerprint": "aba34298ffe3cf08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-07a343b9ea73c216", "level": "note", "message": {"text": "Very large file: pydeps/numpy/lib/tests/test_arraypad.py (1380 lines)"}, "properties": {"repobilityId": "52a8e54111279350", "scanner": "scanner-primary", "fingerprint": "07a343b9ea73c216", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-40f808563e51336c", "level": "note", "message": {"text": "Very large file: pydeps/numpy/polynomial/hermite_e.py (1695 lines)"}, "properties": {"repobilityId": "fe9e3254d0a88bf6", "scanner": "scanner-primary", "fingerprint": "40f808563e51336c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed9ebec2e172481f", "level": "note", "message": {"text": "Very large file: pydeps/numpy/polynomial/hermite.py (1703 lines)"}, "properties": {"repobilityId": "222ba81c6813f9b3", "scanner": "scanner-primary", "fingerprint": "ed9ebec2e172481f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-311f7d8b0d6f39dc", "level": "note", "message": {"text": "Very large file: pydeps/numpy/polynomial/laguerre.py (1651 lines)"}, "properties": {"repobilityId": "6fe9e2facdf0a2b8", "scanner": "scanner-primary", "fingerprint": "311f7d8b0d6f39dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-096a4cbbc2c9d5eb", "level": "note", "message": {"text": "Very large file: pydeps/numpy/polynomial/chebyshev.py (2082 lines)"}, "properties": {"repobilityId": "37b07354bfaeb9ec", "scanner": "scanner-primary", "fingerprint": "096a4cbbc2c9d5eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-788f12a751beb2b2", "level": "note", "message": {"text": "Very large file: pydeps/numpy/polynomial/legendre.py (1664 lines)"}, "properties": {"repobilityId": "8835c6b710f78dce", "scanner": "scanner-primary", "fingerprint": "788f12a751beb2b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1fe75ff160a55d3c", "level": "note", "message": {"text": "Very large file: pydeps/numpy/random/tests/test_generator_mt19937.py (2746 lines)"}, "properties": {"repobilityId": "79f33d42e30f8dfa", "scanner": "scanner-primary", "fingerprint": "1fe75ff160a55d3c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4107ff49da680fc", "level": "note", "message": {"text": "Very large file: pydeps/numpy/random/tests/test_random.py (1750 lines)"}, "properties": {"repobilityId": "bae8e8e1b237f1c7", "scanner": "scanner-primary", "fingerprint": "d4107ff49da680fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5b1d219b2dd680c7", "level": "note", "message": {"text": "Very large file: pydeps/numpy/random/tests/test_randomstate.py (2121 lines)"}, "properties": {"repobilityId": "27bb4e61b759dd5b", "scanner": "scanner-primary", "fingerprint": "5b1d219b2dd680c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d205e4c5acdb45b", "level": "note", "message": {"text": "Very large file: pydeps/numpy/linalg/linalg.py (2836 lines)"}, "properties": {"repobilityId": "c321063937ab07a5", "scanner": "scanner-primary", "fingerprint": "5d205e4c5acdb45b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2bfd46674d5bd46d", "level": "note", "message": {"text": "Very large file: pydeps/numpy/linalg/tests/test_linalg.py (2198 lines)"}, "properties": {"repobilityId": "b57f082c9ffe70fc", "scanner": "scanner-primary", "fingerprint": "2bfd46674d5bd46d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5469b9580d52ccc3", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/_add_newdocs.py (7080 lines)"}, "properties": {"repobilityId": "c544521fb2370f7b", "scanner": "scanner-primary", "fingerprint": "5469b9580d52ccc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27019e7dd8c319fa", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/fromnumeric.py (3920 lines)"}, "properties": {"repobilityId": "854f8e85be820ace", "scanner": "scanner-primary", "fingerprint": "27019e7dd8c319fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-218726e7948d4ecb", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/numeric.py (2530 lines)"}, "properties": {"repobilityId": "2391f0aee54074b7", "scanner": "scanner-primary", "fingerprint": "218726e7948d4ecb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d3105ddc20580aca", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/defchararray.py (2914 lines)"}, "properties": {"repobilityId": "a2eddaf61d35020c", "scanner": "scanner-primary", "fingerprint": "d3105ddc20580aca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-54b75f63201ec4f6", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/arrayprint.py (1725 lines)"}, "properties": {"repobilityId": "b1bca9cfc54a5ed2", "scanner": "scanner-primary", "fingerprint": "54b75f63201ec4f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fe86f869a57e7bae", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/einsumfunc.py (1443 lines)"}, "properties": {"repobilityId": "73dc0480f7bdb29b", "scanner": "scanner-primary", "fingerprint": "fe86f869a57e7bae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c6f8102ede0a1c73", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/multiarray.py (1715 lines)"}, "properties": {"repobilityId": "8c27632bca78a4b1", "scanner": "scanner-primary", "fingerprint": "c6f8102ede0a1c73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3a7baca43dee19d2", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_einsum.py (1248 lines)"}, "properties": {"repobilityId": "78fe7c7513592c0e", "scanner": "scanner-primary", "fingerprint": "3a7baca43dee19d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b9d4c38bd0fcfbc0", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_numeric.py (3593 lines)"}, "properties": {"repobilityId": "1bb4156bab03ef51", "scanner": "scanner-primary", "fingerprint": "b9d4c38bd0fcfbc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2a29d8c61acf271", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_multiarray.py (10054 lines)"}, "properties": {"repobilityId": "517b43e1cef3f95e", "scanner": "scanner-primary", "fingerprint": "f2a29d8c61acf271", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cf6c2a3352ec403f", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_indexing.py (1417 lines)"}, "properties": {"repobilityId": "55a241dc83e89512", "scanner": "scanner-primary", "fingerprint": "cf6c2a3352ec403f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-55e26a5478f197be", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_ufunc.py (2996 lines)"}, "properties": {"repobilityId": "0113e4e6e6968d19", "scanner": "scanner-primary", "fingerprint": "55e26a5478f197be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2b8661c72620cade", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_nditer.py (3348 lines)"}, "properties": {"repobilityId": "b8b99dec5bf696fa", "scanner": "scanner-primary", "fingerprint": "2b8661c72620cade", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bf09b38b118f8d8b", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_datetime.py (2569 lines)"}, "properties": {"repobilityId": "18341359287747b3", "scanner": "scanner-primary", "fingerprint": "bf09b38b118f8d8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0bd20254361fecc0", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_umath.py (4743 lines)"}, "properties": {"repobilityId": "248760a0d1242d55", "scanner": "scanner-primary", "fingerprint": "0bd20254361fecc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a9fedbc9b0af30f", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_regression.py (2568 lines)"}, "properties": {"repobilityId": "d5a7b575d1cd21e5", "scanner": "scanner-primary", "fingerprint": "6a9fedbc9b0af30f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bc8aef774b5c08be", "level": "note", "message": {"text": "Very large file: pydeps/numpy/core/tests/test_dtype.py (1906 lines)"}, "properties": {"repobilityId": "f81f6e748e61aff0", "scanner": "scanner-primary", "fingerprint": "bc8aef774b5c08be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1d71add7ca7ec719", "level": "note", "message": {"text": "Very large file: pydeps/numpy/fft/_pocketfft.py (1424 lines)"}, "properties": {"repobilityId": "1e597a1ac09efd98", "scanner": "scanner-primary", "fingerprint": "1d71add7ca7ec719", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-992ec258063ca9c3", "level": "note", "message": {"text": "Very large file: pydeps/numpy/distutils/system_info.py (3271 lines)"}, "properties": {"repobilityId": "bef4dd0ea29400e4", "scanner": "scanner-primary", "fingerprint": "992ec258063ca9c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80feaa8a7b82e96d", "level": "note", "message": {"text": "Very large file: pydeps/numpy/distutils/misc_util.py (2493 lines)"}, "properties": {"repobilityId": "d0d0b6510dec3c24", "scanner": "scanner-primary", "fingerprint": "80feaa8a7b82e96d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a3589d384f91a7c", "level": "note", "message": {"text": "Very large file: pydeps/numpy/distutils/ccompiler_opt.py (2668 lines)"}, "properties": {"repobilityId": "7f821cbf1f96866e", "scanner": "scanner-primary", "fingerprint": "1a3589d384f91a7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80a9991a98180eb6", "level": "note", "message": {"text": "Very large file: pydeps/numpy/ma/extras.py (2133 lines)"}, "properties": {"repobilityId": "8b9cb138aa1dc686", "scanner": "scanner-primary", "fingerprint": "80a9991a98180eb6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b6bbb0afe4ea360d", "level": "note", "message": {"text": "Very large file: pydeps/numpy/ma/core.py (8565 lines)"}, "properties": {"repobilityId": "b5792b75e64ac894", "scanner": "scanner-primary", "fingerprint": "b6bbb0afe4ea360d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d6fc051be7edd03a", "level": "note", "message": {"text": "Very large file: pydeps/numpy/ma/tests/test_extras.py (1870 lines)"}, "properties": {"repobilityId": "26eed8fc012d0d4a", "scanner": "scanner-primary", "fingerprint": "d6fc051be7edd03a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f61f3840c066568e", "level": "note", "message": {"text": "Very large file: pydeps/numpy/ma/tests/test_core.py (5687 lines)"}, "properties": {"repobilityId": "1d8e92fb2af82a2c", "scanner": "scanner-primary", "fingerprint": "f61f3840c066568e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-643752fbc8f9bee0", "level": "note", "message": {"text": "Very large file: mobile_app/obsidian_bridge.py (1373 lines)"}, "properties": {"repobilityId": "160e7ca5b266ef47", "scanner": "scanner-primary", "fingerprint": "643752fbc8f9bee0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d68787c2fdfd7204", "level": "note", "message": {"text": "Very large file: mobile_app/api.py (1485 lines)"}, "properties": {"repobilityId": "f574029418f7eec4", "scanner": "scanner-primary", "fingerprint": "d68787c2fdfd7204", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e674a5db2356bd4b", "level": "note", "message": {"text": "207 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "e674a5db2356bd4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "d157fe85c583037d", "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": "1ff8a4fbb905c6cb", "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": "5ade00864723ca72", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "8bb69b33526f4217", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "9f4a8f658fd15910", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4396ee0943224f64", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/rules/workflow.md"}, "properties": {"repobilityId": "13f8418e2b09c08d", "scanner": "scanner-primary", "fingerprint": "4396ee0943224f64", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/rules/workflow.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-271966742cd8e8b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/explain-score.md"}, "properties": {"repobilityId": "f2a394dda20b5c34", "scanner": "scanner-primary", "fingerprint": "271966742cd8e8b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/explain-score.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e2573acce32798b2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/check-data.md"}, "properties": {"repobilityId": "e4ecbb48a98ac5c1", "scanner": "scanner-primary", "fingerprint": "e2573acce32798b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/check-data.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-696df86491e0f73a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/asset-evaluation.md"}, "properties": {"repobilityId": "230ff88980071953", "scanner": "scanner-primary", "fingerprint": "696df86491e0f73a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/asset-evaluation.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db9cc08178f5b6cb", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/commands/check-health.md"}, "properties": {"repobilityId": "526b490afcbfcd3f", "scanner": "scanner-primary", "fingerprint": "db9cc08178f5b6cb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/check-health.md"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-fcc40dfb112a85a4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/check-health.md"}, "properties": {"repobilityId": "60415441e09d7e62", "scanner": "scanner-primary", "fingerprint": "fcc40dfb112a85a4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/check-health.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7cd7ec7115f41ae8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/validate-rules.md"}, "properties": {"repobilityId": "fd8452692674b4d8", "scanner": "scanner-primary", "fingerprint": "7cd7ec7115f41ae8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/validate-rules.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-83adc3ed37d83701", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/case-similarity.md"}, "properties": {"repobilityId": "6750bac478729bd1", "scanner": "scanner-primary", "fingerprint": "83adc3ed37d83701", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/case-similarity.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-59fa44925b00fa93", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/analyze-variables.md"}, "properties": {"repobilityId": "50cd0c1d931514ca", "scanner": "scanner-primary", "fingerprint": "59fa44925b00fa93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/analyze-variables.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-85f29a08549911bc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/audit-scores.md"}, "properties": {"repobilityId": "ee3047ef8fccd680", "scanner": "scanner-primary", "fingerprint": "85f29a08549911bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/audit-scores.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d86c57cf44fb930", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/analyze-logs.md"}, "properties": {"repobilityId": "fb55c5b763844545", "scanner": "scanner-primary", "fingerprint": "5d86c57cf44fb930", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/analyze-logs.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-26a54e2bcb1f4939", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/generate-industry-brief.md"}, "properties": {"repobilityId": "ab397fa33924d93b", "scanner": "scanner-primary", "fingerprint": "26a54e2bcb1f4939", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/generate-industry-brief.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc493250f93a98b6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/generate-report.md"}, "properties": {"repobilityId": "1136a0b9340cb555", "scanner": "scanner-primary", "fingerprint": "dc493250f93a98b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/generate-report.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-433f488afc9eecbb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/build-check.md"}, "properties": {"repobilityId": "568a2095eb95fbc9", "scanner": "scanner-primary", "fingerprint": "433f488afc9eecbb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/build-check.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87cfb3f65ab0fe62", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/optimize-coefficients.md"}, "properties": {"repobilityId": "5b4eb93759425f0a", "scanner": "scanner-primary", "fingerprint": "87cfb3f65ab0fe62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/optimize-coefficients.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-29f9e0e966304941", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/batch-export.md"}, "properties": {"repobilityId": "09823be1f3856b0c", "scanner": "scanner-primary", "fingerprint": "29f9e0e966304941", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/batch-export.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e1256cbfb505fb1", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/quick-score.md"}, "properties": {"repobilityId": "e416a633029a8f68", "scanner": "scanner-primary", "fingerprint": "7e1256cbfb505fb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/quick-score.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e166796fbb0dd01c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/commands/financial-forecast.md"}, "properties": {"repobilityId": "1b538bb09b5563bc", "scanner": "scanner-primary", "fingerprint": "e166796fbb0dd01c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/commands/financial-forecast.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-44e82a66114cd1a6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-checker.md"}, "properties": {"repobilityId": "451c1c8ecae8265a", "scanner": "scanner-primary", "fingerprint": "44e82a66114cd1a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/security-checker.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-811c374151c29877", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/reports/data-quality/latest.md"}, "properties": {"repobilityId": "365f57efd6841741", "scanner": "scanner-primary", "fingerprint": "811c374151c29877", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/reports/data-quality/latest.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1113cf4e3e4bff2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/git-ship/SKILL.md"}, "properties": {"repobilityId": "a0653e28468e209b", "scanner": "scanner-primary", "fingerprint": "b1113cf4e3e4bff2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/git-ship/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f6043f0e56b8d97c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/restart-api/SKILL.md"}, "properties": {"repobilityId": "c88acdb536c02755", "scanner": "scanner-primary", "fingerprint": "f6043f0e56b8d97c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/restart-api/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-24e547e8b5913854", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/re-lease-count/SKILL.md"}, "properties": {"repobilityId": "f3d3bf425bb6da83", "scanner": "scanner-primary", "fingerprint": "24e547e8b5913854", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/re-lease-count/SKILL.md"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-11cf98dadf262af8", "level": "note", "message": {"text": "Legacy-named symbol `lbl_v1` in flet_aurion_wave.py:130"}, "properties": {"repobilityId": "ed067a6718883277", "scanner": "scanner-primary", "fingerprint": "11cf98dadf262af8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d38172093a81bb7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lease_logic_sumaho8.py:3583"}, "properties": {"repobilityId": "bb1d94da0a8ea58d", "scanner": "scanner-primary", "fingerprint": "d38172093a81bb7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0fe0dffa88ec824", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 mahalanobis_ui.py:46"}, "properties": {"repobilityId": "68c9489b8497024c", "scanner": "scanner-primary", "fingerprint": "c0fe0dffa88ec824", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a4bc72bc207c2b0", "level": "note", "message": {"text": "Legacy-named symbol `spread_predictor_v2` in retraining_pipeline.py:63"}, "properties": {"repobilityId": "8fb0c4444b1fdf0c", "scanner": "scanner-primary", "fingerprint": "2a4bc72bc207c2b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6845c37d19adc769", "level": "none", "message": {"text": "Commented-code block (5 lines) in scoring_core.py:896"}, "properties": {"repobilityId": "44b8251b4baea7fe", "scanner": "scanner-primary", "fingerprint": "6845c37d19adc769", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e90e51e7d412b24", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 lease_intelligence_consultation.py:190"}, "properties": {"repobilityId": "f94ef1893585047f", "scanner": "scanner-primary", "fingerprint": "3e90e51e7d412b24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a4d56bf14bbbe8ba", "level": "note", "message": {"text": "Legacy-named symbol `pw_old` in auth_logic.py:239"}, "properties": {"repobilityId": "5438d328882e564f", "scanner": "scanner-primary", "fingerprint": "a4d56bf14bbbe8ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f1e1e0bdc7d3b10c", "level": "none", "message": {"text": "Commented-code block (5 lines) in slack_screening.py:295"}, "properties": {"repobilityId": "62404d2ae91fc15f", "scanner": "scanner-primary", "fingerprint": "f1e1e0bdc7d3b10c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-217d2802a6834b26", "level": "note", "message": {"text": "Legacy-named symbol `run_backup` in backup_manager.py:32"}, "properties": {"repobilityId": "4e7d7dc890dda829", "scanner": "scanner-primary", "fingerprint": "217d2802a6834b26", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ffa8515527180307", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 check_integrity.py:234"}, "properties": {"repobilityId": "5d244e994613f5c8", "scanner": "scanner-primary", "fingerprint": "ffa8515527180307", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1023dda4d787fb5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/analysis/RealGraphs.tsx:58"}, "properties": {"repobilityId": "76e0a3d9d3df5e4e", "scanner": "scanner-primary", "fingerprint": "1023dda4d787fb5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-866c8efc4d2419aa", "level": "note", "message": {"text": "Legacy-named symbol `spread_predictor_v2` in frontend/src/app/help/page.tsx:298"}, "properties": {"repobilityId": "3f7d2b9f47e04956", "scanner": "scanner-primary", "fingerprint": "866c8efc4d2419aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7060e62b42f00041", "level": "note", "message": {"text": "Legacy-named symbol `test_rerank_prefers_curated_knowledge_over_news_and_sync_copy` in tests/test_knowledge_vector_store_rerank.py:17"}, "properties": {"repobilityId": "97f902aaac73db45", "scanner": "scanner-primary", "fingerprint": "7060e62b42f00041", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a14a5878e44f841", "level": "note", "message": {"text": "Legacy-named symbol `spread_predictor_v2` in tests/spec_phase4/test_P4-003.py:123"}, "properties": {"repobilityId": "27d257289aca9c11", "scanner": "scanner-primary", "fingerprint": "6a14a5878e44f841", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9f35e5f77f04a80b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/spec_phase3/test_P3-001.py:112"}, "properties": {"repobilityId": "2dc1f954cc8a44f0", "scanner": "scanner-primary", "fingerprint": "9f35e5f77f04a80b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0ffa3190eb83d32", "level": "note", "message": {"text": "Legacy-named symbol `res_backup` in api/scoring_full.py:220"}, "properties": {"repobilityId": "ab5169c7de125739", "scanner": "scanner-primary", "fingerprint": "b0ffa3190eb83d32", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-19346593ae149945", "level": "note", "message": {"text": "Legacy-named symbol `run_backup` in api/main.py:2755"}, "properties": {"repobilityId": "6ca187673746a0cd", "scanner": "scanner-primary", "fingerprint": "19346593ae149945", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0dda3e4c520905a7", "level": "error", "message": {"text": "Blocking `requests.post(...)` inside `async def ocr_financial` \u2014 api/routers/ocr.py:99"}, "properties": {"repobilityId": "2af97557afcf4096", "scanner": "scanner-primary", "fingerprint": "0dda3e4c520905a7", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/ocr.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-ea243d60a925f9a3", "level": "note", "message": {"text": "Legacy-named symbol `plotly_3d_v1` in _archive/lease_logic_sumaho11.py:3369"}, "properties": {"repobilityId": "ad5c7d9357bdeefd", "scanner": "scanner-primary", "fingerprint": "ea243d60a925f9a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-70b9a416ff85c86d", "level": "none", "message": {"text": "Commented-code block (5 lines) in _archive/lease_logic_sumaho11.py:2012"}, "properties": {"repobilityId": "5800c9c229b32723", "scanner": "scanner-primary", "fingerprint": "70b9a416ff85c86d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2dc139014e59d4da", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/dispatch_log_to_obsidian.py:103"}, "properties": {"repobilityId": "d121c77172c420bf", "scanner": "scanner-primary", "fingerprint": "2dc139014e59d4da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-50005562166fb598", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/cleanup_improvement_reviews.py:52"}, "properties": {"repobilityId": "ada311e8cd96c1e6", "scanner": "scanner-primary", "fingerprint": "50005562166fb598", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39245afdc50a6eff", "level": "note", "message": {"text": "Legacy-named symbol `removed_old` in scripts/backup_case_data.py:60"}, "properties": {"repobilityId": "3bac3a1006044bec", "scanner": "scanner-primary", "fingerprint": "39245afdc50a6eff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ad228e0c9b9c3291", "level": "note", "message": {"text": "Legacy-named symbol `obsidian_backup` in scripts/check_system_health.py:88"}, "properties": {"repobilityId": "57d00eed88b442bb", "scanner": "scanner-primary", "fingerprint": "ad228e0c9b9c3291", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1bfa75e67b482a13", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/apply_recipe.py:42"}, "properties": {"repobilityId": "39f03282ecb74229", "scanner": "scanner-primary", "fingerprint": "1bfa75e67b482a13", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f29751b485467c44", "level": "note", "message": {"text": "Legacy-named symbol `render_sidebar_backup` in components/sidebar.py:240"}, "properties": {"repobilityId": "8360bad1909b6c51", "scanner": "scanner-primary", "fingerprint": "f29751b485467c44", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e72c4795f9affc00", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 components/mahalanobis_3d.py:140"}, "properties": {"repobilityId": "e108e07cda9b1c7d", "scanner": "scanner-primary", "fingerprint": "e72c4795f9affc00", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bd86f69e34790b5c", "level": "note", "message": {"text": "Legacy-named symbol `run_backup` in components/batch_scoring.py:804"}, "properties": {"repobilityId": "e7ce3b7d32c2569a", "scanner": "scanner-primary", "fingerprint": "bd86f69e34790b5c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0082c8cf35b69c11", "level": "note", "message": {"text": "Legacy-named symbol `_sv_session_copy` in components/analysis_results.py:1046"}, "properties": {"repobilityId": "6859793630ff185d", "scanner": "scanner-primary", "fingerprint": "0082c8cf35b69c11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5801a5f9256510ca", "level": "note", "message": {"text": "Legacy-named symbol `manual_auto_comment_v2` in components/ai_consultation.py:247"}, "properties": {"repobilityId": "93dcd0a21fbbc101", "scanner": "scanner-primary", "fingerprint": "5801a5f9256510ca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-08885f60305411c0", "level": "note", "message": {"text": "Legacy-named symbol `_vr_session_copy` in components/agent_hub.py:1562"}, "properties": {"repobilityId": "3cf95f27d7c6d7f8", "scanner": "scanner-primary", "fingerprint": "08885f60305411c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf519778e867c83e", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/score_calculation.py:400"}, "properties": {"repobilityId": "0c9fe117241d2a15", "scanner": "scanner-primary", "fingerprint": "bf519778e867c83e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a97dfb2f276c0c68", "level": "note", "message": {"text": "Legacy-named symbol `_build_shinsa_agent_prompt_v2` in components/agent_team.py:1546"}, "properties": {"repobilityId": "d7b43a407cc965df", "scanner": "scanner-primary", "fingerprint": "a97dfb2f276c0c68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b6619eda95ab67db", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/marginal_improvement.py:8"}, "properties": {"repobilityId": "907b69f1a9b7f172", "scanner": "scanner-primary", "fingerprint": "b6619eda95ab67db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b57e35604cc96346", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/__init__.py:214"}, "properties": {"repobilityId": "d37aaf902cab233a", "scanner": "scanner-primary", "fingerprint": "b57e35604cc96346", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3967aa3791a94a6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/testing/tests/test_utils.py:398"}, "properties": {"repobilityId": "e57f47f330181126", "scanner": "scanner-primary", "fingerprint": "3967aa3791a94a6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f54690ac5b5121be", "level": "none", "message": {"text": "Commented-code block (8 lines) in pydeps/numpy/testing/_private/utils.py:95"}, "properties": {"repobilityId": "8ddc02234710f22b", "scanner": "scanner-primary", "fingerprint": "f54690ac5b5121be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e2dd3ae8a422ef5", "level": "note", "message": {"text": "Stub function `nop` (body is just `pass`/`return`) \u2014 pydeps/numpy/testing/_private/utils.py:1262"}, "properties": {"repobilityId": "42e0a13934f4c3dc", "scanner": "scanner-primary", "fingerprint": "1e2dd3ae8a422ef5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-2e8c07c99aff1892", "level": "none", "message": {"text": "Commented-code block (7 lines) in pydeps/numpy/tests/test_public_api.py:114"}, "properties": {"repobilityId": "cb84789886878af6", "scanner": "scanner-primary", "fingerprint": "2e8c07c99aff1892", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-421abeebf6537551", "level": "none", "message": {"text": "Commented-code block (13 lines) in pydeps/numpy/f2py/cfuncs.py:376"}, "properties": {"repobilityId": "7610368aaae9b7ee", "scanner": "scanner-primary", "fingerprint": "421abeebf6537551", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af1afd702dc9babb", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/crackfortran.py:1453"}, "properties": {"repobilityId": "83d8018d5b42c24a", "scanner": "scanner-primary", "fingerprint": "af1afd702dc9babb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92462bc6dfeb3dd5", "level": "note", "message": {"text": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/auxfuncs.py:33"}, "properties": {"repobilityId": "8a88680c80417d83", "scanner": "scanner-primary", "fingerprint": "92462bc6dfeb3dd5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-61b909467d2b4d06", "level": "none", "message": {"text": "Commented-code block (8 lines) in pydeps/numpy/f2py/symbolic.py:14"}, "properties": {"repobilityId": "847b4bb261a09555", "scanner": "scanner-primary", "fingerprint": "61b909467d2b4d06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25c0d2d2710c28d0", "level": "note", "message": {"text": "Legacy-named symbol `isintent_copy` in pydeps/numpy/f2py/rules.py:66"}, "properties": {"repobilityId": "7e4231c549ab5fb5", "scanner": "scanner-primary", "fingerprint": "25c0d2d2710c28d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3cf751a080b4a5f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/rules.py:895"}, "properties": {"repobilityId": "def166cac6f175f5", "scanner": "scanner-primary", "fingerprint": "3cf751a080b4a5f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6778d7be73ca2a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/f2py/capi_maps.py:149"}, "properties": {"repobilityId": "959e752138ca857a", "scanner": "scanner-primary", "fingerprint": "a6778d7be73ca2a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a3329fbdf971870", "level": "note", "message": {"text": "Legacy-named symbol `_character_bc_old` in pydeps/numpy/f2py/tests/test_character.py:497"}, "properties": {"repobilityId": "af14b894383dfb92", "scanner": "scanner-primary", "fingerprint": "6a3329fbdf971870", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aeac279a14f9c976", "level": "note", "message": {"text": "Legacy-named symbol `obj_copy` in pydeps/numpy/f2py/tests/test_array_from_pyobj.py:272"}, "properties": {"repobilityId": "69619f0a1c05a4a6", "scanner": "scanner-primary", "fingerprint": "aeac279a14f9c976", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d6493948facfd9f7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/f2py/_backends/_meson.py:167"}, "properties": {"repobilityId": "b1bef344b510c22f", "scanner": "scanner-primary", "fingerprint": "d6493948facfd9f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-90151a669117dd58", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/arraysetops.py:299"}, "properties": {"repobilityId": "89611c4424739596", "scanner": "scanner-primary", "fingerprint": "90151a669117dd58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14e8c78c3b3d070c", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/_datasource.py:309"}, "properties": {"repobilityId": "286c71b8e1c64c80", "scanner": "scanner-primary", "fingerprint": "14e8c78c3b3d070c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36319b9ef2009f87", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/nanfunctions.py:1730"}, "properties": {"repobilityId": "4dbf15eba2c99965", "scanner": "scanner-primary", "fingerprint": "36319b9ef2009f87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecd416f1aaffe37f", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/format.py:382"}, "properties": {"repobilityId": "8ee6019abeb90413", "scanner": "scanner-primary", "fingerprint": "ecd416f1aaffe37f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f35d8979353679e", "level": "none", "message": {"text": "Commented-code block (8 lines) in pydeps/numpy/lib/npyio.py:236"}, "properties": {"repobilityId": "0a6840d15f933076", "scanner": "scanner-primary", "fingerprint": "1f35d8979353679e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75d8db3f6709eb69", "level": "none", "message": {"text": "Commented-code block (7 lines) in pydeps/numpy/lib/function_base.py:56"}, "properties": {"repobilityId": "bbad64c1b3869c68", "scanner": "scanner-primary", "fingerprint": "75d8db3f6709eb69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-869b19662afba480", "level": "note", "message": {"text": "Legacy-named symbol `a_copy` in pydeps/numpy/lib/tests/test_function_base.py:258"}, "properties": {"repobilityId": "c0eb0a6493432440", "scanner": "scanner-primary", "fingerprint": "869b19662afba480", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f50beffcc3a0bb10", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_function_base.py:1872"}, "properties": {"repobilityId": "21a5c5704ada305d", "scanner": "scanner-primary", "fingerprint": "f50beffcc3a0bb10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-595050270195da86", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_io.py:298"}, "properties": {"repobilityId": "985460d33314ea8b", "scanner": "scanner-primary", "fingerprint": "595050270195da86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ae8688330a31546", "level": "note", "message": {"text": "Legacy-named symbol `test_drop_metadata_identity_and_copy` in pydeps/numpy/lib/tests/test_utils.py:222"}, "properties": {"repobilityId": "8a4a4711024e13fa", "scanner": "scanner-primary", "fingerprint": "5ae8688330a31546", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af4f268f2f23c14e", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test_loadtxt.py:897"}, "properties": {"repobilityId": "a0c8d17e08816557", "scanner": "scanner-primary", "fingerprint": "af4f268f2f23c14e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b828880a5ee470d1", "level": "note", "message": {"text": "Legacy-named symbol `is_deprecated` in pydeps/numpy/lib/tests/test__datasource.py:342"}, "properties": {"repobilityId": "d4c8e315ff9365e6", "scanner": "scanner-primary", "fingerprint": "b828880a5ee470d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ab5d868cd98d9a0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/lib/tests/test__datasource.py:338"}, "properties": {"repobilityId": "c9399dcec2d6d1b6", "scanner": "scanner-primary", "fingerprint": "ab5d868cd98d9a0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1d69c8dfc60f074", "level": "note", "message": {"text": "Stub function `example` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/__init__.py:20"}, "properties": {"repobilityId": "7a36f6272daae67c", "scanner": "scanner-primary", "fingerprint": "b1d69c8dfc60f074", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-0a8280bbff7d8557", "level": "none", "message": {"text": "Commented-code block (11 lines) in pydeps/numpy/_utils/_pep440.py:20"}, "properties": {"repobilityId": "c285b72f5f4e8887", "scanner": "scanner-primary", "fingerprint": "0a8280bbff7d8557", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5728db8997fd916", "level": "note", "message": {"text": "Stub function `local` (body is just `pass`/`return`) \u2014 pydeps/numpy/_utils/_pep440.py:186"}, "properties": {"repobilityId": "4d358c2d25c30e38", "scanner": "scanner-primary", "fingerprint": "a5728db8997fd916", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-aab33307f956cca4", "level": "note", "message": {"text": "Stub function `domain` (body is just `pass`/`return`) \u2014 pydeps/numpy/polynomial/_polybase.py:116"}, "properties": {"repobilityId": "a5b2b63e2d266ef2", "scanner": "scanner-primary", "fingerprint": "aab33307f956cca4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-cb934abb198ed3ad", "level": "note", "message": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_symbol.py:155"}, "properties": {"repobilityId": "447fd426a1ddf82b", "scanner": "scanner-primary", "fingerprint": "cb934abb198ed3ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3ffcf74a37dd0b7e", "level": "note", "message": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_classes.py:420"}, "properties": {"repobilityId": "9fa633dc40afe591", "scanner": "scanner-primary", "fingerprint": "3ffcf74a37dd0b7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ddfc3a099127c681", "level": "note", "message": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/polynomial/tests/test_polynomial.py:46"}, "properties": {"repobilityId": "bcc3fb54a1638fd6", "scanner": "scanner-primary", "fingerprint": "ddfc3a099127c681", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-824faaacafe66ddd", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/array_api/linalg.py:294"}, "properties": {"repobilityId": "b971452d1cbfe860", "scanner": "scanner-primary", "fingerprint": "824faaacafe66ddd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c66ac7a5e7f1a480", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/array_api/_array_object.py:241"}, "properties": {"repobilityId": "7173153adbb4da53", "scanner": "scanner-primary", "fingerprint": "c66ac7a5e7f1a480", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c9737d98cffd30c", "level": "none", "message": {"text": "Commented-code block (7 lines) in pydeps/numpy/array_api/_dtypes.py:93"}, "properties": {"repobilityId": "09321a053eee7f1f", "scanner": "scanner-primary", "fingerprint": "8c9737d98cffd30c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10f5ece41b1a5ff4", "level": "note", "message": {"text": "Legacy-named symbol `test_reshape_copy` in pydeps/numpy/array_api/tests/test_manipulation_functions.py:25"}, "properties": {"repobilityId": "b66b3f92587efddf", "scanner": "scanner-primary", "fingerprint": "10f5ece41b1a5ff4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f8fdbf394c340cfe", "level": "note", "message": {"text": "Legacy-named symbol `test_asarray_copy` in pydeps/numpy/array_api/tests/test_creation_functions.py:40"}, "properties": {"repobilityId": "d7169176f66c0ce0", "scanner": "scanner-primary", "fingerprint": "f8fdbf394c340cfe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d310c063e870faf3", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/_typing/_array_like.py:34"}, "properties": {"repobilityId": "4d6c19ed6343fcb7", "scanner": "scanner-primary", "fingerprint": "d310c063e870faf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa9d90bdc146e682", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/random/tests/test_generator_mt19937.py:218"}, "properties": {"repobilityId": "c46313950c6e0aa4", "scanner": "scanner-primary", "fingerprint": "aa9d90bdc146e682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96fb6e80d7042d92", "level": "note", "message": {"text": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_random.py:351"}, "properties": {"repobilityId": "b61347acecff5673", "scanner": "scanner-primary", "fingerprint": "96fb6e80d7042d92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-173f99c64a2ede8a", "level": "none", "message": {"text": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_random.py:253"}, "properties": {"repobilityId": "9e47290a39a772c8", "scanner": "scanner-primary", "fingerprint": "173f99c64a2ede8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-743ca61d160c0208", "level": "note", "message": {"text": "Legacy-named symbol `test_random_integers_deprecated` in pydeps/numpy/random/tests/test_randomstate.py:539"}, "properties": {"repobilityId": "a9c781640c8e12a9", "scanner": "scanner-primary", "fingerprint": "743ca61d160c0208", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3774fe692404bc15", "level": "none", "message": {"text": "Commented-code block (11 lines) in pydeps/numpy/random/tests/test_randomstate.py:397"}, "properties": {"repobilityId": "4fa2d30510e55d0d", "scanner": "scanner-primary", "fingerprint": "3774fe692404bc15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11d8490aee29a097", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/__init__.py:130"}, "properties": {"repobilityId": "1041bb7fec1be0d9", "scanner": "scanner-primary", "fingerprint": "11d8490aee29a097", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c42c7d68870b2c26", "level": "none", "message": {"text": "Commented-code block (7 lines) in pydeps/numpy/core/numeric.py:2337"}, "properties": {"repobilityId": "b5f8e9e7bc54ff71", "scanner": "scanner-primary", "fingerprint": "c42c7d68870b2c26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4173f476e05a367", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/records.py:458"}, "properties": {"repobilityId": "7c43ef1739fa2414", "scanner": "scanner-primary", "fingerprint": "f4173f476e05a367", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3e68f8788bd18dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/defchararray.py:327"}, "properties": {"repobilityId": "c9facbbc3d34d9fa", "scanner": "scanner-primary", "fingerprint": "e3e68f8788bd18dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3a0a79e60dc3f75", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/arrayprint.py:12"}, "properties": {"repobilityId": "f722e760d37aa0a6", "scanner": "scanner-primary", "fingerprint": "c3a0a79e60dc3f75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e8c3ff463437d89", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/einsumfunc.py:697"}, "properties": {"repobilityId": "9b5b98c709359ac2", "scanner": "scanner-primary", "fingerprint": "4e8c3ff463437d89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fbc3e25bb20711c", "level": "note", "message": {"text": "Legacy-named symbol `ary_copy` in pydeps/numpy/core/_internal.py:428"}, "properties": {"repobilityId": "ee1af90eeb26fb6b", "scanner": "scanner-primary", "fingerprint": "1fbc3e25bb20711c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-09d62c6ce446bca1", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/_internal.py:82"}, "properties": {"repobilityId": "3a26af8535b4f827", "scanner": "scanner-primary", "fingerprint": "09d62c6ce446bca1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa10f2b30e2ad426", "level": "note", "message": {"text": "Legacy-named symbol `test_deprecated` in pydeps/numpy/core/tests/test_array_coercion.py:843"}, "properties": {"repobilityId": "48c28846c5422382", "scanner": "scanner-primary", "fingerprint": "fa10f2b30e2ad426", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6390246cc3cb625a", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_array_coercion.py:448"}, "properties": {"repobilityId": "5fae1dbef2310480", "scanner": "scanner-primary", "fingerprint": "6390246cc3cb625a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f220306e32dba226", "level": "none", "message": {"text": "Commented-code block (11 lines) in pydeps/numpy/core/tests/test_einsum.py:793"}, "properties": {"repobilityId": "395c37e4b3a0e084", "scanner": "scanner-primary", "fingerprint": "f220306e32dba226", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7794f798e2c12a6", "level": "note", "message": {"text": "Legacy-named symbol `test_returns_copy` in pydeps/numpy/core/tests/test_shape_base.py:229"}, "properties": {"repobilityId": "7be43cd48c1a7f5f", "scanner": "scanner-primary", "fingerprint": "a7794f798e2c12a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03020fca412850cb", "level": "none", "message": {"text": "Commented-code block (8 lines) in pydeps/numpy/core/tests/test_numeric.py:849"}, "properties": {"repobilityId": "828ec50f623f7be7", "scanner": "scanner-primary", "fingerprint": "03020fca412850cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3c5a8ccfeb7c3af", "level": "note", "message": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/core/tests/test_multiarray.py:2257"}, "properties": {"repobilityId": "42f1a3e0149ceec3", "scanner": "scanner-primary", "fingerprint": "d3c5a8ccfeb7c3af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b1b96e6573b0e2e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_multiarray.py:545"}, "properties": {"repobilityId": "52c99caded13f91f", "scanner": "scanner-primary", "fingerprint": "b1b96e6573b0e2e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1658fe91245a698", "level": "note", "message": {"text": "Legacy-named symbol `no_copy` in pydeps/numpy/core/tests/test_indexing.py:873"}, "properties": {"repobilityId": "69745c59834e436f", "scanner": "scanner-primary", "fingerprint": "c1658fe91245a698", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e16c18bff50096cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_indexing.py:495"}, "properties": {"repobilityId": "46c0a537d0712d86", "scanner": "scanner-primary", "fingerprint": "e16c18bff50096cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d38d7e3ed813e671", "level": "note", "message": {"text": "Legacy-named symbol `a_copy` in pydeps/numpy/core/tests/test_ufunc.py:1726"}, "properties": {"repobilityId": "cdccc0cfe8774939", "scanner": "scanner-primary", "fingerprint": "d38d7e3ed813e671", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-14e4bc94c99bf3ef", "level": "none", "message": {"text": "Commented-code block (12 lines) in pydeps/numpy/core/tests/test_ufunc.py:1771"}, "properties": {"repobilityId": "f7b66f1d6848c013", "scanner": "scanner-primary", "fingerprint": "14e4bc94c99bf3ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b080ac3ae330c6d", "level": "note", "message": {"text": "Legacy-named symbol `test_iter_copy` in pydeps/numpy/core/tests/test_nditer.py:1347"}, "properties": {"repobilityId": "b0d058a302cccad8", "scanner": "scanner-primary", "fingerprint": "7b080ac3ae330c6d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-41bc02fe09369c63", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_nditer.py:1429"}, "properties": {"repobilityId": "4351753707b07dcf", "scanner": "scanner-primary", "fingerprint": "41bc02fe09369c63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71f1621c6e3e2caa", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_scalarprint.py:51"}, "properties": {"repobilityId": "e20ab5a4f338d9f1", "scanner": "scanner-primary", "fingerprint": "71f1621c6e3e2caa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb352ecd0f530821", "level": "note", "message": {"text": "Legacy-named symbol `arr_copy` in pydeps/numpy/core/tests/test_item_selection.py:113"}, "properties": {"repobilityId": "1eb1d729042bc504", "scanner": "scanner-primary", "fingerprint": "bb352ecd0f530821", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ed293c58b3cf4b2d", "level": "note", "message": {"text": "Legacy-named symbol `assert_deprecated` in pydeps/numpy/core/tests/test_deprecations.py:52"}, "properties": {"repobilityId": "11f7850c9a61362d", "scanner": "scanner-primary", "fingerprint": "ed293c58b3cf4b2d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-489fa151fe915d5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_deprecations.py:39"}, "properties": {"repobilityId": "601cc9810bd51a35", "scanner": "scanner-primary", "fingerprint": "489fa151fe915d5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4b1841efc887eed", "level": "note", "message": {"text": "Legacy-named symbol `OverriddenArrayOld` in pydeps/numpy/core/tests/test_umath.py:3609"}, "properties": {"repobilityId": "ce11f9d50dfa8fb9", "scanner": "scanner-primary", "fingerprint": "a4b1841efc887eed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5ea4e628c3f1220d", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_umath.py:4500"}, "properties": {"repobilityId": "f6eeaf4283c1ba5e", "scanner": "scanner-primary", "fingerprint": "5ea4e628c3f1220d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-168ffc2d5d499c08", "level": "note", "message": {"text": "Legacy-named symbol `test_recarray_copy` in pydeps/numpy/core/tests/test_regression.py:561"}, "properties": {"repobilityId": "a9ba9e8c7154432a", "scanner": "scanner-primary", "fingerprint": "168ffc2d5d499c08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9223e76c425cc587", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/core/tests/test_regression.py:1684"}, "properties": {"repobilityId": "05198ec6a13a77cc", "scanner": "scanner-primary", "fingerprint": "9223e76c425cc587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-806db0b013e1528b", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/core/tests/test_scalarmath.py:612"}, "properties": {"repobilityId": "8fc0fbd1c35227e5", "scanner": "scanner-primary", "fingerprint": "806db0b013e1528b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c0ad9f83d88cba93", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/unixccompiler.py:66"}, "properties": {"repobilityId": "67589a3554be6439", "scanner": "scanner-primary", "fingerprint": "c0ad9f83d88cba93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b348a27f672e44c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/ccompiler.py:57"}, "properties": {"repobilityId": "7650d78a3c1f2617", "scanner": "scanner-primary", "fingerprint": "b348a27f672e44c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aad44e9a1b106f69", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/lib2def.py:66"}, "properties": {"repobilityId": "bc6ef3adf56d2a31", "scanner": "scanner-primary", "fingerprint": "aad44e9a1b106f69", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1dcdb78b3b050cd8", "level": "none", "message": {"text": "Commented-code block (8 lines) in pydeps/numpy/distutils/misc_util.py:325"}, "properties": {"repobilityId": "ec585b1a4b78c0b2", "scanner": "scanner-primary", "fingerprint": "1dcdb78b3b050cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80bb272bbbe0c54b", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/misc_util.py:418"}, "properties": {"repobilityId": "c13a89fc697de6f8", "scanner": "scanner-primary", "fingerprint": "80bb272bbbe0c54b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-09111e6ff3d0f8a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/core.py:95"}, "properties": {"repobilityId": "809fcd21d0c144de", "scanner": "scanner-primary", "fingerprint": "09111e6ff3d0f8a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f9621cd4f71a995", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/exec_command.py:283"}, "properties": {"repobilityId": "a407591aed11b9fe", "scanner": "scanner-primary", "fingerprint": "0f9621cd4f71a995", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-721f2f677c789fdc", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/ccompiler_opt.py:2489"}, "properties": {"repobilityId": "9d6cf7a01c522389", "scanner": "scanner-primary", "fingerprint": "721f2f677c789fdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-574cb6498e6f0379", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/mingw32ccompiler.py:19"}, "properties": {"repobilityId": "f7892230e73dc1c6", "scanner": "scanner-primary", "fingerprint": "574cb6498e6f0379", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-665544414f8ab0de", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/mingw32ccompiler.py:221"}, "properties": {"repobilityId": "a8fa243ea068f0a6", "scanner": "scanner-primary", "fingerprint": "665544414f8ab0de", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4116a1594546c21", "level": "none", "message": {"text": "Commented-code block (10 lines) in pydeps/numpy/distutils/cpuinfo.py:674"}, "properties": {"repobilityId": "74edbe3c75122f6b", "scanner": "scanner-primary", "fingerprint": "c4116a1594546c21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6dc2ef8568f07a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/tests/test_exec_command.py:59"}, "properties": {"repobilityId": "338b13a3ca9a6c70", "scanner": "scanner-primary", "fingerprint": "c6dc2ef8568f07a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd6a70b573c6387d", "level": "none", "message": {"text": "Commented-code block (9 lines) in pydeps/numpy/distutils/fcompiler/__init__.py:93"}, "properties": {"repobilityId": "2464820e93ee1226", "scanner": "scanner-primary", "fingerprint": "fd6a70b573c6387d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9a5fd779b2304fc", "level": "note", "message": {"text": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/vast.py:30"}, "properties": {"repobilityId": "bffc9538fd5636e5", "scanner": "scanner-primary", "fingerprint": "c9a5fd779b2304fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-ad42dbc1f1b82513", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/distutils/fcompiler/gnu.py:119"}, "properties": {"repobilityId": "893f023765a3751e", "scanner": "scanner-primary", "fingerprint": "ad42dbc1f1b82513", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76a256455ec461c9", "level": "note", "message": {"text": "Stub function `find_executables` (body is just `pass`/`return`) \u2014 pydeps/numpy/distutils/fcompiler/none.py:21"}, "properties": {"repobilityId": "8be640ba699c81d1", "scanner": "scanner-primary", "fingerprint": "76a256455ec461c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c25783ffdf29232e", "level": "none", "message": {"text": "Commented-code block (7 lines) in pydeps/numpy/distutils/command/install.py:36"}, "properties": {"repobilityId": "47b1f30bf37da766", "scanner": "scanner-primary", "fingerprint": "c25783ffdf29232e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-844229a1e605c699", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_clib.py:127"}, "properties": {"repobilityId": "bd707632f2284d4d", "scanner": "scanner-primary", "fingerprint": "844229a1e605c699", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c39cac394244f338", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/config.py:468"}, "properties": {"repobilityId": "3c980cbfdfd134e8", "scanner": "scanner-primary", "fingerprint": "c39cac394244f338", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ef4900e3aacf85a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pydeps/numpy/distutils/command/config.py:474"}, "properties": {"repobilityId": "5cfc1da42bc42014", "scanner": "scanner-primary", "fingerprint": "1ef4900e3aacf85a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-526433913a61357b", "level": "none", "message": {"text": "Commented-code block (6 lines) in pydeps/numpy/distutils/command/build_ext.py:155"}, "properties": {"repobilityId": "1efd51fd9674c8e3", "scanner": "scanner-primary", "fingerprint": "526433913a61357b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b49d4542f0d2e509", "level": "none", "message": {"text": "Commented-code block (15 lines) in pydeps/numpy/ma/core.py:2986"}, "properties": {"repobilityId": "62129532255e12ad", "scanner": "scanner-primary", "fingerprint": "b49d4542f0d2e509", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac2e245871d16372", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_subclassing.py:75"}, "properties": {"repobilityId": "0fef79e9ca825410", "scanner": "scanner-primary", "fingerprint": "ac2e245871d16372", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c91b32eaa33f881", "level": "note", "message": {"text": "Legacy-named symbol `test_copy` in pydeps/numpy/ma/tests/test_core.py:399"}, "properties": {"repobilityId": "058ac6995cea5075", "scanner": "scanner-primary", "fingerprint": "2c91b32eaa33f881", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b94a5f1123dd6905", "level": "none", "message": {"text": "Commented-code block (5 lines) in pydeps/numpy/ma/tests/test_core.py:2424"}, "properties": {"repobilityId": "cb5ec8bd7302103c", "scanner": "scanner-primary", "fingerprint": "b94a5f1123dd6905", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8f6fe6ea58e608f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mobile_app/sw.js:38"}, "properties": {"repobilityId": "5da75161cf595c13", "scanner": "scanner-primary", "fingerprint": "a8f6fe6ea58e608f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-862177e3899cf406", "level": "note", "message": {"text": "Legacy-named symbol `rf_new_customer_v1` in mobile_app/api.py:6"}, "properties": {"repobilityId": "46b9471703b0720c", "scanner": "scanner-primary", "fingerprint": "862177e3899cf406", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-500e3b7d9fe8faf0", "level": "note", "message": {"text": "76 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "12aca37ef2a6fb6e", "scanner": "scanner-primary", "fingerprint": "500e3b7d9fe8faf0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "28946dde05f8ea93", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b4d0c69976020d28", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1dfbec6c2ae4d909", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "fc3755233e879297", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "29dee960b5f347d3", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "b3bab0c084ef2c7e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "94d4cf776ec9f853", "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": "cb50f90b30795852", "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": "809882504e9669ce", "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": "5cd516af5d719e29", "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": "e9f06fd48b26a0db", "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": "e7ab7833245ac92a", "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": "fd30b5c7de5eb2b5", "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": "1b8d3d2db9ed4d0e", "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": "69b04299e93e69e3", "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": "990753fd7be802f4", "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": "11ffbf55a0475060", "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": "9c17def3ed0cba99", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "0cb0a762c58e36be", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b1301e969e19e068", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-69e0eb380532e369", "level": "error", "message": {"text": "FastAPI POST `forecast` without auth dependency \u2014 backend.py:200"}, "properties": {"repobilityId": "7215ad65f8d90024", "scanner": "scanner-primary", "fingerprint": "69e0eb380532e369", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend.py"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-6028915293182366", "level": "error", "message": {"text": "FastAPI POST `ocr_financial` without auth dependency \u2014 api/routers/ocr.py:66"}, "properties": {"repobilityId": "b26318d8e6a6fd54", "scanner": "scanner-primary", "fingerprint": "6028915293182366", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/routers/ocr.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-f41049c0d5e0e22a", "level": "error", "message": {"text": "Flask mutation route `result` without `@login_required` \u2014 web/app.py:91"}, "properties": {"repobilityId": "823ffb74974bda82", "scanner": "scanner-primary", "fingerprint": "f41049c0d5e0e22a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/app.py"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-dfce3b7867735099", "level": "error", "message": {"text": "FastAPI POST `predict` without auth dependency \u2014 mobile_app/api.py:924"}, "properties": {"repobilityId": "9f40a18c392f89a4", "scanner": "scanner-primary", "fingerprint": "dfce3b7867735099", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 924}}}]}, {"ruleId": "scanner-f4787fa249c2d8a1", "level": "error", "message": {"text": "FastAPI PATCH `update_case_result` without auth dependency \u2014 mobile_app/api.py:1344"}, "properties": {"repobilityId": "657f0bffde4de4d9", "scanner": "scanner-primary", "fingerprint": "f4787fa249c2d8a1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 1344}}}]}, {"ruleId": "scanner-1741030b267f8316", "level": "error", "message": {"text": "FastAPI DELETE `delete_case_record` without auth dependency \u2014 mobile_app/api.py:1361"}, "properties": {"repobilityId": "d41aef3f8e7188d5", "scanner": "scanner-primary", "fingerprint": "1741030b267f8316", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 1361}}}]}, {"ruleId": "scanner-515eeadf282f4b56", "level": "error", "message": {"text": "FastAPI POST `advisor_strategy` without auth dependency \u2014 mobile_app/api.py:1367"}, "properties": {"repobilityId": "ce34d0bd416704cd", "scanner": "scanner-primary", "fingerprint": "515eeadf282f4b56", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 1367}}}]}, {"ruleId": "scanner-d16eb64e24da50f2", "level": "error", "message": {"text": "FastAPI POST `chat` without auth dependency \u2014 mobile_app/api.py:1399"}, "properties": {"repobilityId": "13c5ce9cbc0959c3", "scanner": "scanner-primary", "fingerprint": "d16eb64e24da50f2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 1399}}}]}, {"ruleId": "scanner-48977a0af6f11b15", "level": "error", "message": {"text": "FastAPI POST `gunshi_stream_proxy` without auth dependency \u2014 mobile_app/api.py:1430"}, "properties": {"repobilityId": "8ab89c841000e05d", "scanner": "scanner-primary", "fingerprint": "48977a0af6f11b15", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile_app/api.py"}, "region": {"startLine": 1430}}}]}, {"ruleId": "scanner-5ea2e113ff250f5f", "level": "note", "message": {"text": "Unused endpoint: POST /forecast"}, "properties": {"repobilityId": "0a78172719a91717", "scanner": "scanner-primary", "fingerprint": "5ea2e113ff250f5f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "010a849383b56d00", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e857b262f6415948", "level": "note", "message": {"text": "Unused endpoint: POST /api/industry/suggest"}, "properties": {"repobilityId": "8c138ade46f913e7", "scanner": "scanner-primary", "fingerprint": "e857b262f6415948", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7052b81ec6ddced7", "level": "note", "message": {"text": "Unused endpoint: POST /api/score/calculate"}, "properties": {"repobilityId": "eeed644d0364196d", "scanner": "scanner-primary", "fingerprint": "7052b81ec6ddced7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a90f6076c319bc0a", "level": "note", "message": {"text": "Unused endpoint: POST /api/score/full"}, "properties": {"repobilityId": "99d4d6559dab6da9", "scanner": "scanner-primary", "fingerprint": "a90f6076c319bc0a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2acb252b22ca86e7", "level": "note", "message": {"text": "Unused endpoint: POST /api/deal/closure-probability"}, "properties": {"repobilityId": "ccdbb6e4c6b7c4c7", "scanner": "scanner-primary", "fingerprint": "2acb252b22ca86e7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9921eeb3777a71fa", "level": "note", "message": {"text": "Unused endpoint: GET /api/industry/stats"}, "properties": {"repobilityId": "033bae78c5680af1", "scanner": "scanner-primary", "fingerprint": "9921eeb3777a71fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54bf0075b63722c4", "level": "note", "message": {"text": "Unused endpoint: GET /api/cases"}, "properties": {"repobilityId": "c8b896f66bbde35a", "scanner": "scanner-primary", "fingerprint": "54bf0075b63722c4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c14d670fd7b8922f", "level": "note", "message": {"text": "Unused endpoint: GET /api/batch/template"}, "properties": {"repobilityId": "7bec796f9d3a4959", "scanner": "scanner-primary", "fingerprint": "c14d670fd7b8922f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef970373aa2a3fe1", "level": "note", "message": {"text": "Unused endpoint: POST /api/asset-finance/evaluate"}, "properties": {"repobilityId": "998d4222c8a1f321", "scanner": "scanner-primary", "fingerprint": "ef970373aa2a3fe1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-16c0cf9711af7c52", "level": "note", "message": {"text": "Unused endpoint: POST /api/asset-finance/obsidian-context"}, "properties": {"repobilityId": "6abc6f27c4de3e7c", "scanner": "scanner-primary", "fingerprint": "16c0cf9711af7c52", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd85c6d6bda5f0a9", "level": "note", "message": {"text": "Unused endpoint: POST /api/asset-finance/similar-notes"}, "properties": {"repobilityId": "58df46cb22222bf5", "scanner": "scanner-primary", "fingerprint": "cd85c6d6bda5f0a9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e9990309ca35170", "level": "note", "message": {"text": "Unused endpoint: GET /api/knowledge/graph"}, "properties": {"repobilityId": "481329cdbee0d7af", "scanner": "scanner-primary", "fingerprint": "8e9990309ca35170", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b896782de6f4915", "level": "note", "message": {"text": "Unused endpoint: POST /api/asset-finance/save-to-obsidian"}, "properties": {"repobilityId": "2759afd880e6f735", "scanner": "scanner-primary", "fingerprint": "6b896782de6f4915", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b6420aba44982f34", "level": "note", "message": {"text": "Unused endpoint: GET /api/cases/industry-winrate"}, "properties": {"repobilityId": "66d4b6894d8d9f3c", "scanner": "scanner-primary", "fingerprint": "b6420aba44982f34", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2a40a3b570c1984", "level": "note", "message": {"text": "Unused endpoint: GET /api/cases/sales-dept-winrate"}, "properties": {"repobilityId": "d2b4f22f9c92f154", "scanner": "scanner-primary", "fingerprint": "b2a40a3b570c1984", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d6768b4a0890a213", "level": "note", "message": {"text": "Unused endpoint: GET /api/payment/alerts"}, "properties": {"repobilityId": "0d658038ff780c4c", "scanner": "scanner-primary", "fingerprint": "d6768b4a0890a213", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-571cd2db218f1ccd", "level": "note", "message": {"text": "Unused endpoint: POST /api/improvement-log/dismiss"}, "properties": {"repobilityId": "d82dabb8f9fe66fe", "scanner": "scanner-primary", "fingerprint": "571cd2db218f1ccd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b102a2a993ebf5c8", "level": "note", "message": {"text": "Unused endpoint: POST /api/improvement-log/review"}, "properties": {"repobilityId": "4eef0a4ed4623165", "scanner": "scanner-primary", "fingerprint": "b102a2a993ebf5c8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a9e3f17d957d6b10", "level": "note", "message": {"text": "Unused endpoint: POST /api/prompt-feedback/rules/register"}, "properties": {"repobilityId": "949412e827d5fdf8", "scanner": "scanner-primary", "fingerprint": "a9e3f17d957d6b10", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5af70c992d561fab", "level": "note", "message": {"text": "Unused endpoint: GET /api/improvement-pipeline/summary"}, "properties": {"repobilityId": "ada8759ec0fbb6d2", "scanner": "scanner-primary", "fingerprint": "5af70c992d561fab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-228a4c4022a34906", "level": "note", "message": {"text": "Unused endpoint: GET /api/subsidies"}, "properties": {"repobilityId": "d0d0553e3f8cd368", "scanner": "scanner-primary", "fingerprint": "228a4c4022a34906", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e481f51171b16226", "level": "note", "message": {"text": "Unused endpoint: GET /api/asset/useful-life-all"}, "properties": {"repobilityId": "db56ccd11414edb7", "scanner": "scanner-primary", "fingerprint": "e481f51171b16226", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dbba968f2a419cef", "level": "note", "message": {"text": "Unused endpoint: GET /api/asset/useful-life-search"}, "properties": {"repobilityId": "5ec5db02376701b9", "scanner": "scanner-primary", "fingerprint": "dbba968f2a419cef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-659e581c658bc9bf", "level": "note", "message": {"text": "Unused endpoint: POST /api/batch/score"}, "properties": {"repobilityId": "6d3ad6abca6d3993", "scanner": "scanner-primary", "fingerprint": "659e581c658bc9bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8bed13197410b2ef", "level": "note", "message": {"text": "Unused endpoint: POST /api/batch/save"}, "properties": {"repobilityId": "703bd4c5605aed31", "scanner": "scanner-primary", "fingerprint": "8bed13197410b2ef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0ed875de4385ad79", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/cases/{case_id}/result"}, "properties": {"repobilityId": "0300f5474cd717d6", "scanner": "scanner-primary", "fingerprint": "0ed875de4385ad79", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-774ac6a48a14d284", "level": "note", "message": {"text": "Unused endpoint: GET /api/cases/pending"}, "properties": {"repobilityId": "cde86631285a02a6", "scanner": "scanner-primary", "fingerprint": "774ac6a48a14d284", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c1bf1084581c95d", "level": "note", "message": {"text": "Unused endpoint: GET /api/cases/{case_id}"}, "properties": {"repobilityId": "7768e137481b0a87", "scanner": "scanner-primary", "fingerprint": "6c1bf1084581c95d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c4765d214f91b93d", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/cases/operation/clear-all"}, "properties": {"repobilityId": "809c5d8db7c4f843", "scanner": "scanner-primary", "fingerprint": "c4765d214f91b93d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ad1936e478c9033", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/cases/{case_id}"}, "properties": {"repobilityId": "864f8156106bebc2", "scanner": "scanner-primary", "fingerprint": "5ad1936e478c9033", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-449f1fdffc395232", "level": "note", "message": {"text": "Unused endpoint: POST /api/gunshi/advise"}, "properties": {"repobilityId": "216e1174e2c4432f", "scanner": "scanner-primary", "fingerprint": "449f1fdffc395232", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d579aa9fcca5bf82", "level": "note", "message": {"text": "Unused endpoint: GET /api/dashboard/stats"}, "properties": {"repobilityId": "15249f6271070e4a", "scanner": "scanner-primary", "fingerprint": "d579aa9fcca5bf82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d4a840d88063213c", "level": "note", "message": {"text": "Unused endpoint: GET /api/lease-news/focus"}, "properties": {"repobilityId": "16e3c9c2b8ccf4c6", "scanner": "scanner-primary", "fingerprint": "d4a840d88063213c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-961e67ab3c0ab5ad", "level": "note", "message": {"text": "Unused endpoint: GET /api/lease-news/brief"}, "properties": {"repobilityId": "cfb5a57a712af613", "scanner": "scanner-primary", "fingerprint": "961e67ab3c0ab5ad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e50898c7281c0145", "level": "note", "message": {"text": "Unused endpoint: GET /api/lease-system-gaps"}, "properties": {"repobilityId": "6c47c220a357cd65", "scanner": "scanner-primary", "fingerprint": "e50898c7281c0145", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9dc142eea2cec6d9", "level": "note", "message": {"text": "Unused endpoint: GET /api/department/stats"}, "properties": {"repobilityId": "f3811abb745498f0", "scanner": "scanner-primary", "fingerprint": "9dc142eea2cec6d9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30d593cb667c820f", "level": "note", "message": {"text": "Unused endpoint: GET /api/visual/data"}, "properties": {"repobilityId": "bb324fe94187c834", "scanner": "scanner-primary", "fingerprint": "30d593cb667c820f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b99d38452115f93a", "level": "note", "message": {"text": "Unused endpoint: GET /api/similar/data"}, "properties": {"repobilityId": "1de2178cb5aedd52", "scanner": "scanner-primary", "fingerprint": "b99d38452115f93a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d21951a004c9200c", "level": "note", "message": {"text": "Unused endpoint: POST /api/similar/inline"}, "properties": {"repobilityId": "58e0ab755b068b85", "scanner": "scanner-primary", "fingerprint": "d21951a004c9200c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3da817dac7e59862", "level": "note", "message": {"text": "Unused endpoint: POST /api/forecast"}, "properties": {"repobilityId": "4234237a126a3c73", "scanner": "scanner-primary", "fingerprint": "3da817dac7e59862", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a24661626a42a265", "level": "note", "message": {"text": "Unused endpoint: POST /api/timesfm/company_score"}, "properties": {"repobilityId": "e0cdc0311efec71b", "scanner": "scanner-primary", "fingerprint": "a24661626a42a265", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-502861ec34485c57", "level": "note", "message": {"text": "Unused endpoint: POST /api/timesfm/final_rate"}, "properties": {"repobilityId": "36cab0f2321cc7cf", "scanner": "scanner-primary", "fingerprint": "502861ec34485c57", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8660b2c173a9a207", "level": "note", "message": {"text": "Unused endpoint: POST /api/timesfm/base_rate"}, "properties": {"repobilityId": "2e0298680477536c", "scanner": "scanner-primary", "fingerprint": "8660b2c173a9a207", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4f8e697d84b95297", "level": "note", "message": {"text": "Unused endpoint: POST /api/timesfm/base_rate_all"}, "properties": {"repobilityId": "09fa930ff072e9bb", "scanner": "scanner-primary", "fingerprint": "4f8e697d84b95297", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7e9d1f88a79738f", "level": "note", "message": {"text": "Unused endpoint: GET /api/analysis/contract_drivers"}, "properties": {"repobilityId": "49a3aecebc1f64e3", "scanner": "scanner-primary", "fingerprint": "c7e9d1f88a79738f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-05de0143dc4f68dc", "level": "note", "message": {"text": "Unused endpoint: GET /api/analysis/quantitative"}, "properties": {"repobilityId": "aa45fd9c37e6e022", "scanner": "scanner-primary", "fingerprint": "05de0143dc4f68dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5f084bded9c4834d", "level": "note", "message": {"text": "Unused endpoint: POST /api/analysis/qualitative"}, "properties": {"repobilityId": "1467966d231f6f98", "scanner": "scanner-primary", "fingerprint": "5f084bded9c4834d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-769cb299fe0d1119", "level": "note", "message": {"text": "Unused endpoint: GET /api/settings/corporate_number"}, "properties": {"repobilityId": "a4dace7e83cb44b5", "scanner": "scanner-primary", "fingerprint": "769cb299fe0d1119", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad884b860983a9e9", "level": "note", "message": {"text": "Unused endpoint: POST /api/settings/corporate_number"}, "properties": {"repobilityId": "7bedf9b729d5095c", "scanner": "scanner-primary", "fingerprint": "ad884b860983a9e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}