{"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-4fdf5e1734d61186", "name": "Possibly dead Python function: generate_bearing_capacity", "shortDescription": {"text": "Possibly dead Python function: generate_bearing_capacity"}, "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-53960156085a334f", "name": "Possibly dead Python function: generate_lateral_pile", "shortDescription": {"text": "Possibly dead Python function: generate_lateral_pile"}, "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-a24968a8bbccddf6", "name": "Possibly dead Python function: generate_slope_stability", "shortDescription": {"text": "Possibly dead Python function: generate_slope_stability"}, "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-013afbd6f6d1ab92", "name": "Possibly dead Python function: generate_settlement", "shortDescription": {"text": "Possibly dead Python function: generate_settlement"}, "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-04f8741052759659", "name": "Possibly dead Python function: generate_axial_pile", "shortDescription": {"text": "Possibly dead Python function: generate_axial_pile"}, "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-66567c3646ef6db3", "name": "Possibly dead Python function: generate_drilled_shaft", "shortDescription": {"text": "Possibly dead Python function: generate_drilled_shaft"}, "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-bd63d33560cc973f", "name": "Possibly dead Python function: generate_downdrag", "shortDescription": {"text": "Possibly dead Python function: generate_downdrag"}, "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-d7aa9d56c37ebe20", "name": "Possibly dead Python function: generate_seismic_geotech", "shortDescription": {"text": "Possibly dead Python function: generate_seismic_geotech"}, "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-8448151d1cf1b0ed", "name": "Possibly dead Python function: generate_retaining_walls", "shortDescription": {"text": "Possibly dead Python function: generate_retaining_walls"}, "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-2d817519beea8a47", "name": "Possibly dead Python function: generate_ground_improvement", "shortDescription": {"text": "Possibly dead Python function: generate_ground_improvement"}, "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-c6d45f40e95f4ab8", "name": "Possibly dead Python function: generate_wave_equation", "shortDescription": {"text": "Possibly dead Python function: generate_wave_equation"}, "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-dfb45dae7ec358d6", "name": "Possibly dead Python function: generate_pile_group", "shortDescription": {"text": "Possibly dead Python function: generate_pile_group"}, "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-d73dfc54b767a484", "name": "Possibly dead Python function: generate_sheet_pile", "shortDescription": {"text": "Possibly dead Python function: generate_sheet_pile"}, "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-dc438c7c188eff43", "name": "Possibly dead Python function: plot_blow_result", "shortDescription": {"text": "Possibly dead Python function: plot_blow_result"}, "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-e3290a293f5074d4", "name": "Possibly dead Python function: plot_bearing_graph", "shortDescription": {"text": "Possibly dead Python function: plot_bearing_graph"}, "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-94f56c50c7ec6d0c", "name": "Possibly dead Python function: capacity_at_blow_count", "shortDescription": {"text": "Possibly dead Python function: capacity_at_blow_count"}, "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-0554b38dbda74d27", "name": "Possibly dead Python function: preview_file", "shortDescription": {"text": "Possibly dead Python function: preview_file"}, "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-cce45e2dd37f5ef8", "name": "Possibly dead Python function: wrapper", "shortDescription": {"text": "Possibly dead Python function: wrapper"}, "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-8e2bbfcb9c6e5994", "name": "Possibly dead Python function: wrap_model_call", "shortDescription": {"text": "Possibly dead Python function: wrap_model_call"}, "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-1c005bf7fd515c8a", "name": "Possibly dead Python function: awrap_model_call", "shortDescription": {"text": "Possibly dead Python function: awrap_model_call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bef5de7ddb4b667", "name": "Insecure pattern 'eval_used' in funhouse_agent/adapters/reliability_adapter.py:51", "shortDescription": {"text": "Insecure pattern 'eval_used' in funhouse_agent/adapters/reliability_adapter.py:51"}, "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-a28e436481cc4ccb", "name": "Insecure pattern 'eval_used' in pystra_agent/pystra_utils.py:173", "shortDescription": {"text": "Insecure pattern 'eval_used' in pystra_agent/pystra_utils.py:173"}, "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-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-7ffa33751be3d771", "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-3794e145e1078927", "name": "Very large file: groundhog_agent.py (3258 lines)", "shortDescription": {"text": "Very large file: groundhog_agent.py (3258 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-45f0546848dac3c4", "name": "Very large file: foundry/groundhog_agent_foundry.py (1178 lines)", "shortDescription": {"text": "Very large file: foundry/groundhog_agent_foundry.py (1178 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-ffc9211511ce8621", "name": "Very large file: funhouse_agent/adapters/calc_package.py (1202 lines)", "shortDescription": {"text": "Very large file: funhouse_agent/adapters/calc_package.py (1202 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-f709e63609d8712e", "name": "Very large file: funhouse_agent/deep/eval_harness.py (1731 lines)", "shortDescription": {"text": "Very large file: funhouse_agent/deep/eval_harness.py (1731 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-18712232cc8cbda8", "name": "Very large file: geotech_common/soil_profile.py (2258 lines)", "shortDescription": {"text": "Very large file: geotech_common/soil_profile.py (2258 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-71cb79814c37bd41", "name": "Very large file: retaining_walls/calc_steps.py (1466 lines)", "shortDescription": {"text": "Very large file: retaining_walls/calc_steps.py (1466 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-1d8d87e185299278", "name": "Very large file: lateral_pile/validation.py (1370 lines)", "shortDescription": {"text": "Very large file: lateral_pile/validation.py (1370 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 227 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 27 placeholder/mock markers across 17 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-403f8367cc5af655", "name": "Commented-code block (5 lines) in axial_pile/pile_types.py:166", "shortDescription": {"text": "Commented-code block (5 lines) in axial_pile/pile_types.py:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa3632203d69e8e4", "name": "Commented-code block (12 lines) in wave_equation/time_integration.py:297", "shortDescription": {"text": "Commented-code block (12 lines) in wave_equation/time_integration.py:297"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c60840832f157435", "name": "Commented-code block (7 lines) in funhouse_agent/vision_tools.py:308", "shortDescription": {"text": "Commented-code block (7 lines) in funhouse_agent/vision_tools.py:308"}, "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-69c9c53fc0ce648c", "name": "Commented-code block (7 lines) in funhouse_agent/agent.py:162", "shortDescription": {"text": "Commented-code block (7 lines) in funhouse_agent/agent.py:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b95e8bc2c84ea4ea", "name": "Commented-code block (5 lines) in funhouse_agent/dispatch.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in funhouse_agent/dispatch.py:45"}, "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-8ae90474ff83b20e", "name": "Commented-code block (5 lines) in funhouse_agent/adapters/calc_package.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/calc_package.py:70"}, "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-27796fc2ad496de2", "name": "Commented-code block (5 lines) in funhouse_agent/adapters/figure_db_adapter.py:70", "shortDescription": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/figure_db_adapter.py:70"}, "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-3371979fd53da4e9", "name": "Commented-code block (5 lines) in funhouse_agent/adapters/_reference_common.py:153", "shortDescription": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/_reference_common.py:153"}, "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-f05908f6b88249fe", "name": "Commented-code block (6 lines) in funhouse_agent/deep/rc_wheel_check.py:83", "shortDescription": {"text": "Commented-code block (6 lines) in funhouse_agent/deep/rc_wheel_check.py:83"}, "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-b5ba5b0acc51bd1e", "name": "Legacy-named symbol `model_copy` in funhouse_agent/deep/databricks_bridge.py:245", "shortDescription": {"text": "Legacy-named symbol `model_copy` in funhouse_agent/deep/databricks_bridge.py:245"}, "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-546f7e3dc1bd075a", "name": "Commented-code block (5 lines) in funhouse_agent/deep/databricks_bridge.py:305", "shortDescription": {"text": "Commented-code block (5 lines) in funhouse_agent/deep/databricks_bridge.py:305"}, "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-b1e01a6df9a607a5", "name": "Commented-code block (10 lines) in retaining_walls/mse.py:208", "shortDescription": {"text": "Commented-code block (10 lines) in retaining_walls/mse.py:208"}, "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-472f09de9f99fb50", "name": "Legacy-named symbol `R_old` in retaining_walls/tests/test_retaining_walls.py:743", "shortDescription": {"text": "Legacy-named symbol `R_old` in retaining_walls/tests/test_retaining_walls.py:743"}, "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-f7cc2a6b447477f6", "name": "Commented-code block (5 lines) in retaining_walls/tests/test_retaining_walls.py:468", "shortDescription": {"text": "Commented-code block (5 lines) in retaining_walls/tests/test_retaining_walls.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-6885cb394fa8b131", "name": "Legacy-named symbol `one_plus_v2` in reliability/pem.py:152", "shortDescription": {"text": "Legacy-named symbol `one_plus_v2` in reliability/pem.py:152"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-888b5505bf2e8599", "name": "Commented-code block (5 lines) in slope_stability/nails.py:264", "shortDescription": {"text": "Commented-code block (5 lines) in slope_stability/nails.py:264"}, "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-189984663ef8d08b", "name": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/methods.py:276", "shortDescription": {"text": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/methods.py:276"}, "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-6ba01fbe3aad1a05", "name": "Commented-code block (6 lines) in slope_stability/methods.py:236", "shortDescription": {"text": "Commented-code block (6 lines) in slope_stability/methods.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-344b0a6817ed2d90", "name": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/__init__.py:23", "shortDescription": {"text": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/__init__.py:23"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d6d34aa2b6a4690", "name": "Commented-code block (5 lines) in slope_stability/gle.py:293", "shortDescription": {"text": "Commented-code block (5 lines) in slope_stability/gle.py:293"}, "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-f077c951cba09a2d", "name": "Commented-code block (5 lines) in slope_stability/slices.py:209", "shortDescription": {"text": "Commented-code block (5 lines) in slope_stability/slices.py:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6da3e812907a1b01", "name": "Commented-code block (6 lines) in slope_stability/tests/test_validation.py:200", "shortDescription": {"text": "Commented-code block (6 lines) in slope_stability/tests/test_validation.py:200"}, "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-7c8d68139dfb4dca", "name": "Commented-code block (5 lines) in slope_stability/tests/test_nails.py:178", "shortDescription": {"text": "Commented-code block (5 lines) in slope_stability/tests/test_nails.py:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b8ba2a28eee5c71", "name": "Commented-code block (5 lines) in slope_stability/tests/test_slope_stability.py:353", "shortDescription": {"text": "Commented-code block (5 lines) in slope_stability/tests/test_slope_stability.py:353"}, "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-44347ce5f8b70493", "name": "Commented-code block (5 lines) in calc_package/equation_converter.py:96", "shortDescription": {"text": "Commented-code block (5 lines) in calc_package/equation_converter.py:96"}, "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-17f482973682012f", "name": "Commented-code block (5 lines) in downdrag/analysis.py:584", "shortDescription": {"text": "Commented-code block (5 lines) in downdrag/analysis.py:584"}, "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-a1fb8d419e8c7f9d", "name": "Commented-code block (7 lines) in lateral_pile/solver.py:162", "shortDescription": {"text": "Commented-code block (7 lines) in lateral_pile/solver.py:162"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a5db807397c658f", "name": "Commented-code block (5 lines) in validation_examples/test_published_v015_v017.py:102", "shortDescription": {"text": "Commented-code block (5 lines) in validation_examples/test_published_v015_v017.py:102"}, "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-6400cfb28ec52364", "name": "Commented-code block (6 lines) in validation_examples/test_published_v021_v022.py:94", "shortDescription": {"text": "Commented-code block (6 lines) in validation_examples/test_published_v021_v022.py:94"}, "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-dca5f470eda8eec9", "name": "Commented-code block (6 lines) in validation_examples/test_published_v012_v025.py:104", "shortDescription": {"text": "Commented-code block (6 lines) in validation_examples/test_published_v012_v025.py:104"}, "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-c7ec98bdc929abea", "name": "Commented-code block (5 lines) in bearing_capacity/factors.py:257", "shortDescription": {"text": "Commented-code block (5 lines) in bearing_capacity/factors.py:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5611bb2a4f06434", "name": "Commented-code block (6 lines) in bearing_capacity/tests/test_bearing_capacity.py:160", "shortDescription": {"text": "Commented-code block (6 lines) in bearing_capacity/tests/test_bearing_capacity.py:160"}, "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-f43e105ea97e09c0", "name": "Commented-code block (5 lines) in fem2d/srm.py:209", "shortDescription": {"text": "Commented-code block (5 lines) in fem2d/srm.py:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c4df72cbf02b6e1", "name": "Commented-code block (5 lines) in fem2d/elements.py:385", "shortDescription": {"text": "Commented-code block (5 lines) in fem2d/elements.py:385"}, "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-495ea6460e3c58ce", "name": "Commented-code block (7 lines) in fem2d/analysis.py:158", "shortDescription": {"text": "Commented-code block (7 lines) in fem2d/analysis.py:158"}, "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-65d006fc7bcb1275", "name": "Legacy-named symbol `yielded_old` in fem2d/tests/test_mc3d.py:74", "shortDescription": {"text": "Legacy-named symbol `yielded_old` in fem2d/tests/test_mc3d.py:74"}, "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-7f988b268505a10f", "name": "Commented-code block (5 lines) in fem2d/tests/test_srm_duncan.py:237", "shortDescription": {"text": "Commented-code block (5 lines) in fem2d/tests/test_srm_duncan.py:237"}, "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-010a0662e7a69bc4", "name": "Commented-code block (10 lines) in pile_group/rigid_cap.py:350", "shortDescription": {"text": "Commented-code block (10 lines) in pile_group/rigid_cap.py:350"}, "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-c1fb52155e761a66", "name": "Commented-code block (5 lines) in settlement/immediate.py:207", "shortDescription": {"text": "Commented-code block (5 lines) in settlement/immediate.py:207"}, "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-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nfoundry/subsurface_char_agent_foundry.py:function, foundry/calc_package_agent_foundry.py:function, foundry/dxf_import_agent_foundry.py:function, foundry/pdf_import_agent_foundry.py:function\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:\nfoundry/seismic_signals_agent_foundry.py:function, foundry/pystrata_agent_foundry.py:function\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naxial_pile/soil_profile.py:total_thickness, drilled_shaft/soil_profile.py:total_thickness, downdrag/soil.py:total_depth\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19966"}, "properties": {"repository": "soconnell345-geotech/GeotechStaffEngineer", "repoUrl": "https://github.com/soconnell345-geotech/GeotechStaffEngineer", "branch": "main"}, "results": [{"ruleId": "scanner-4fdf5e1734d61186", "level": "note", "message": {"text": "Possibly dead Python function: generate_bearing_capacity"}, "properties": {"repobilityId": "d7a9513668448edf", "scanner": "scanner-primary", "fingerprint": "4fdf5e1734d61186", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53960156085a334f", "level": "note", "message": {"text": "Possibly dead Python function: generate_lateral_pile"}, "properties": {"repobilityId": "068a5875cec3c7da", "scanner": "scanner-primary", "fingerprint": "53960156085a334f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a24968a8bbccddf6", "level": "note", "message": {"text": "Possibly dead Python function: generate_slope_stability"}, "properties": {"repobilityId": "995acb2110401683", "scanner": "scanner-primary", "fingerprint": "a24968a8bbccddf6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:97"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-013afbd6f6d1ab92", "level": "note", "message": {"text": "Possibly dead Python function: generate_settlement"}, "properties": {"repobilityId": "a85cafa662d4533e", "scanner": "scanner-primary", "fingerprint": "013afbd6f6d1ab92", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:141"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04f8741052759659", "level": "note", "message": {"text": "Possibly dead Python function: generate_axial_pile"}, "properties": {"repobilityId": "da3925c907801d64", "scanner": "scanner-primary", "fingerprint": "04f8741052759659", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:191"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-66567c3646ef6db3", "level": "note", "message": {"text": "Possibly dead Python function: generate_drilled_shaft"}, "properties": {"repobilityId": "d0225a9f16225ac3", "scanner": "scanner-primary", "fingerprint": "66567c3646ef6db3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:247"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd63d33560cc973f", "level": "note", "message": {"text": "Possibly dead Python function: generate_downdrag"}, "properties": {"repobilityId": "700fae490cb2c2b3", "scanner": "scanner-primary", "fingerprint": "bd63d33560cc973f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:297"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d7aa9d56c37ebe20", "level": "note", "message": {"text": "Possibly dead Python function: generate_seismic_geotech"}, "properties": {"repobilityId": "f55af5d9c90d2e15", "scanner": "scanner-primary", "fingerprint": "d7aa9d56c37ebe20", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:351"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8448151d1cf1b0ed", "level": "note", "message": {"text": "Possibly dead Python function: generate_retaining_walls"}, "properties": {"repobilityId": "4afb08c1ea16218b", "scanner": "scanner-primary", "fingerprint": "8448151d1cf1b0ed", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:380"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d817519beea8a47", "level": "note", "message": {"text": "Possibly dead Python function: generate_ground_improvement"}, "properties": {"repobilityId": "4efb09adeb8b93d0", "scanner": "scanner-primary", "fingerprint": "2d817519beea8a47", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:429"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c6d45f40e95f4ab8", "level": "note", "message": {"text": "Possibly dead Python function: generate_wave_equation"}, "properties": {"repobilityId": "1b4e070a0c9a6df9", "scanner": "scanner-primary", "fingerprint": "c6d45f40e95f4ab8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:473"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dfb45dae7ec358d6", "level": "note", "message": {"text": "Possibly dead Python function: generate_pile_group"}, "properties": {"repobilityId": "cc874aa3be494f53", "scanner": "scanner-primary", "fingerprint": "dfb45dae7ec358d6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:520"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d73dfc54b767a484", "level": "note", "message": {"text": "Possibly dead Python function: generate_sheet_pile"}, "properties": {"repobilityId": "93c8ea06a85f5eb4", "scanner": "scanner-primary", "fingerprint": "d73dfc54b767a484", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "generate_all_pdfs.py:554"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc438c7c188eff43", "level": "note", "message": {"text": "Possibly dead Python function: plot_blow_result"}, "properties": {"repobilityId": "fa6a349cfac0e481", "scanner": "scanner-primary", "fingerprint": "dc438c7c188eff43", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wave_equation/results.py:18"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3290a293f5074d4", "level": "note", "message": {"text": "Possibly dead Python function: plot_bearing_graph"}, "properties": {"repobilityId": "ffc69d0aced2bffe", "scanner": "scanner-primary", "fingerprint": "e3290a293f5074d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wave_equation/results.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-94f56c50c7ec6d0c", "level": "note", "message": {"text": "Possibly dead Python function: capacity_at_blow_count"}, "properties": {"repobilityId": "b0da6949a4353f2c", "scanner": "scanner-primary", "fingerprint": "94f56c50c7ec6d0c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "wave_equation/bearing_graph.py:55"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0554b38dbda74d27", "level": "note", "message": {"text": "Possibly dead Python function: preview_file"}, "properties": {"repobilityId": "0b998fc59df2d851", "scanner": "scanner-primary", "fingerprint": "0554b38dbda74d27", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funhouse_agent/notebook.py:125"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cce45e2dd37f5ef8", "level": "note", "message": {"text": "Possibly dead Python function: wrapper"}, "properties": {"repobilityId": "1dc9acbcc8ce537d", "scanner": "scanner-primary", "fingerprint": "cce45e2dd37f5ef8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funhouse_agent/adapters/_reference_common.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8e2bbfcb9c6e5994", "level": "note", "message": {"text": "Possibly dead Python function: wrap_model_call"}, "properties": {"repobilityId": "e287f2a7b5c484b1", "scanner": "scanner-primary", "fingerprint": "8e2bbfcb9c6e5994", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funhouse_agent/deep/limits.py:122"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1c005bf7fd515c8a", "level": "note", "message": {"text": "Possibly dead Python function: awrap_model_call"}, "properties": {"repobilityId": "cc1de1b484b71f7f", "scanner": "scanner-primary", "fingerprint": "1c005bf7fd515c8a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funhouse_agent/deep/limits.py:128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6bef5de7ddb4b667", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in funhouse_agent/adapters/reliability_adapter.py:51"}, "properties": {"repobilityId": "41f74df6f658793f", "scanner": "scanner-primary", "fingerprint": "6bef5de7ddb4b667", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funhouse_agent/adapters/reliability_adapter.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-a28e436481cc4ccb", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pystra_agent/pystra_utils.py:173"}, "properties": {"repobilityId": "87b5807ff8391dcc", "scanner": "scanner-primary", "fingerprint": "a28e436481cc4ccb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pystra_agent/pystra_utils.py"}, "region": {"startLine": 173}}}]}, {"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-7ffa33751be3d771", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "491a3ad29cbaf189", "scanner": "scanner-primary", "fingerprint": "7ffa33751be3d771", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3794e145e1078927", "level": "note", "message": {"text": "Very large file: groundhog_agent.py (3258 lines)"}, "properties": {"repobilityId": "72339df98b19d177", "scanner": "scanner-primary", "fingerprint": "3794e145e1078927", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-45f0546848dac3c4", "level": "note", "message": {"text": "Very large file: foundry/groundhog_agent_foundry.py (1178 lines)"}, "properties": {"repobilityId": "0ed577738c6dbccb", "scanner": "scanner-primary", "fingerprint": "45f0546848dac3c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ffc9211511ce8621", "level": "note", "message": {"text": "Very large file: funhouse_agent/adapters/calc_package.py (1202 lines)"}, "properties": {"repobilityId": "5479de03fa0c4514", "scanner": "scanner-primary", "fingerprint": "ffc9211511ce8621", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f709e63609d8712e", "level": "note", "message": {"text": "Very large file: funhouse_agent/deep/eval_harness.py (1731 lines)"}, "properties": {"repobilityId": "9512578901e2d10b", "scanner": "scanner-primary", "fingerprint": "f709e63609d8712e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18712232cc8cbda8", "level": "note", "message": {"text": "Very large file: geotech_common/soil_profile.py (2258 lines)"}, "properties": {"repobilityId": "b9e8b98e840404cb", "scanner": "scanner-primary", "fingerprint": "18712232cc8cbda8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71cb79814c37bd41", "level": "note", "message": {"text": "Very large file: retaining_walls/calc_steps.py (1466 lines)"}, "properties": {"repobilityId": "b67216c5d26ac482", "scanner": "scanner-primary", "fingerprint": "71cb79814c37bd41", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1d8d87e185299278", "level": "note", "message": {"text": "Very large file: lateral_pile/validation.py (1370 lines)"}, "properties": {"repobilityId": "ff38bee59be9b61f", "scanner": "scanner-primary", "fingerprint": "1d8d87e185299278", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "acef8e693cca3103", "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": "33a870066b8309c9", "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": "9b99433f8680a549", "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": "2f8cc5a48bb9b339", "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": "eaa3b33a30c6be11", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-403f8367cc5af655", "level": "none", "message": {"text": "Commented-code block (5 lines) in axial_pile/pile_types.py:166"}, "properties": {"repobilityId": "fc491649d9329705", "scanner": "scanner-primary", "fingerprint": "403f8367cc5af655", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa3632203d69e8e4", "level": "none", "message": {"text": "Commented-code block (12 lines) in wave_equation/time_integration.py:297"}, "properties": {"repobilityId": "5cba1c7be5785155", "scanner": "scanner-primary", "fingerprint": "fa3632203d69e8e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c60840832f157435", "level": "none", "message": {"text": "Commented-code block (7 lines) in funhouse_agent/vision_tools.py:308"}, "properties": {"repobilityId": "8b2084a7443fc473", "scanner": "scanner-primary", "fingerprint": "c60840832f157435", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69c9c53fc0ce648c", "level": "none", "message": {"text": "Commented-code block (7 lines) in funhouse_agent/agent.py:162"}, "properties": {"repobilityId": "d70bb974eb46bb37", "scanner": "scanner-primary", "fingerprint": "69c9c53fc0ce648c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b95e8bc2c84ea4ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in funhouse_agent/dispatch.py:45"}, "properties": {"repobilityId": "28db2077c094795e", "scanner": "scanner-primary", "fingerprint": "b95e8bc2c84ea4ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ae90474ff83b20e", "level": "none", "message": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/calc_package.py:70"}, "properties": {"repobilityId": "5378ae71510db816", "scanner": "scanner-primary", "fingerprint": "8ae90474ff83b20e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27796fc2ad496de2", "level": "none", "message": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/figure_db_adapter.py:70"}, "properties": {"repobilityId": "f89018ed9f5b9eb9", "scanner": "scanner-primary", "fingerprint": "27796fc2ad496de2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3371979fd53da4e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in funhouse_agent/adapters/_reference_common.py:153"}, "properties": {"repobilityId": "7e93bc69753c04e7", "scanner": "scanner-primary", "fingerprint": "3371979fd53da4e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f05908f6b88249fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in funhouse_agent/deep/rc_wheel_check.py:83"}, "properties": {"repobilityId": "e18b65806ff889d3", "scanner": "scanner-primary", "fingerprint": "f05908f6b88249fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5ba5b0acc51bd1e", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in funhouse_agent/deep/databricks_bridge.py:245"}, "properties": {"repobilityId": "9766b40171385655", "scanner": "scanner-primary", "fingerprint": "b5ba5b0acc51bd1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-546f7e3dc1bd075a", "level": "none", "message": {"text": "Commented-code block (5 lines) in funhouse_agent/deep/databricks_bridge.py:305"}, "properties": {"repobilityId": "be2fa819e1fce91c", "scanner": "scanner-primary", "fingerprint": "546f7e3dc1bd075a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1e01a6df9a607a5", "level": "none", "message": {"text": "Commented-code block (10 lines) in retaining_walls/mse.py:208"}, "properties": {"repobilityId": "f13828a2991424e3", "scanner": "scanner-primary", "fingerprint": "b1e01a6df9a607a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-472f09de9f99fb50", "level": "note", "message": {"text": "Legacy-named symbol `R_old` in retaining_walls/tests/test_retaining_walls.py:743"}, "properties": {"repobilityId": "e9bd3b0b5c83691d", "scanner": "scanner-primary", "fingerprint": "472f09de9f99fb50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7cc2a6b447477f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in retaining_walls/tests/test_retaining_walls.py:468"}, "properties": {"repobilityId": "a1d6d8783f4b8160", "scanner": "scanner-primary", "fingerprint": "f7cc2a6b447477f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6885cb394fa8b131", "level": "note", "message": {"text": "Legacy-named symbol `one_plus_v2` in reliability/pem.py:152"}, "properties": {"repobilityId": "dcec3d14e16d8f4c", "scanner": "scanner-primary", "fingerprint": "6885cb394fa8b131", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-888b5505bf2e8599", "level": "none", "message": {"text": "Commented-code block (5 lines) in slope_stability/nails.py:264"}, "properties": {"repobilityId": "e4debb3ddb223d85", "scanner": "scanner-primary", "fingerprint": "888b5505bf2e8599", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-189984663ef8d08b", "level": "note", "message": {"text": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/methods.py:276"}, "properties": {"repobilityId": "d1abaccd3626c326", "scanner": "scanner-primary", "fingerprint": "189984663ef8d08b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6ba01fbe3aad1a05", "level": "none", "message": {"text": "Commented-code block (6 lines) in slope_stability/methods.py:236"}, "properties": {"repobilityId": "420701b0dfa6bc08", "scanner": "scanner-primary", "fingerprint": "6ba01fbe3aad1a05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-344b0a6817ed2d90", "level": "note", "message": {"text": "Legacy-named symbol `spencer_fos_legacy` in slope_stability/__init__.py:23"}, "properties": {"repobilityId": "11cefbc1aa2b2414", "scanner": "scanner-primary", "fingerprint": "344b0a6817ed2d90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d6d34aa2b6a4690", "level": "none", "message": {"text": "Commented-code block (5 lines) in slope_stability/gle.py:293"}, "properties": {"repobilityId": "2379daee6bc173ad", "scanner": "scanner-primary", "fingerprint": "0d6d34aa2b6a4690", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f077c951cba09a2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in slope_stability/slices.py:209"}, "properties": {"repobilityId": "b531c68ef37bed0d", "scanner": "scanner-primary", "fingerprint": "f077c951cba09a2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6da3e812907a1b01", "level": "none", "message": {"text": "Commented-code block (6 lines) in slope_stability/tests/test_validation.py:200"}, "properties": {"repobilityId": "bdc6d143d6752151", "scanner": "scanner-primary", "fingerprint": "6da3e812907a1b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c8d68139dfb4dca", "level": "none", "message": {"text": "Commented-code block (5 lines) in slope_stability/tests/test_nails.py:178"}, "properties": {"repobilityId": "cc0eedf8207635a8", "scanner": "scanner-primary", "fingerprint": "7c8d68139dfb4dca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b8ba2a28eee5c71", "level": "none", "message": {"text": "Commented-code block (5 lines) in slope_stability/tests/test_slope_stability.py:353"}, "properties": {"repobilityId": "19fc0e732b7643f3", "scanner": "scanner-primary", "fingerprint": "2b8ba2a28eee5c71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44347ce5f8b70493", "level": "none", "message": {"text": "Commented-code block (5 lines) in calc_package/equation_converter.py:96"}, "properties": {"repobilityId": "4882481dbcc1484f", "scanner": "scanner-primary", "fingerprint": "44347ce5f8b70493", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17f482973682012f", "level": "none", "message": {"text": "Commented-code block (5 lines) in downdrag/analysis.py:584"}, "properties": {"repobilityId": "1b874dd3f1d2f29b", "scanner": "scanner-primary", "fingerprint": "17f482973682012f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1fb8d419e8c7f9d", "level": "none", "message": {"text": "Commented-code block (7 lines) in lateral_pile/solver.py:162"}, "properties": {"repobilityId": "da8c72c7f3e5c4f5", "scanner": "scanner-primary", "fingerprint": "a1fb8d419e8c7f9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a5db807397c658f", "level": "none", "message": {"text": "Commented-code block (5 lines) in validation_examples/test_published_v015_v017.py:102"}, "properties": {"repobilityId": "f66f7205ceda8d56", "scanner": "scanner-primary", "fingerprint": "5a5db807397c658f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6400cfb28ec52364", "level": "none", "message": {"text": "Commented-code block (6 lines) in validation_examples/test_published_v021_v022.py:94"}, "properties": {"repobilityId": "81799aafece43ae6", "scanner": "scanner-primary", "fingerprint": "6400cfb28ec52364", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dca5f470eda8eec9", "level": "none", "message": {"text": "Commented-code block (6 lines) in validation_examples/test_published_v012_v025.py:104"}, "properties": {"repobilityId": "d1e12a74b830470c", "scanner": "scanner-primary", "fingerprint": "dca5f470eda8eec9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7ec98bdc929abea", "level": "none", "message": {"text": "Commented-code block (5 lines) in bearing_capacity/factors.py:257"}, "properties": {"repobilityId": "285d9d2cc0aa5cd9", "scanner": "scanner-primary", "fingerprint": "c7ec98bdc929abea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5611bb2a4f06434", "level": "none", "message": {"text": "Commented-code block (6 lines) in bearing_capacity/tests/test_bearing_capacity.py:160"}, "properties": {"repobilityId": "a2936f3ad6ef0b3b", "scanner": "scanner-primary", "fingerprint": "e5611bb2a4f06434", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f43e105ea97e09c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in fem2d/srm.py:209"}, "properties": {"repobilityId": "70bce6d92324ba93", "scanner": "scanner-primary", "fingerprint": "f43e105ea97e09c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c4df72cbf02b6e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in fem2d/elements.py:385"}, "properties": {"repobilityId": "2ddf5df470af9a1a", "scanner": "scanner-primary", "fingerprint": "3c4df72cbf02b6e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-495ea6460e3c58ce", "level": "none", "message": {"text": "Commented-code block (7 lines) in fem2d/analysis.py:158"}, "properties": {"repobilityId": "7049514f4176165d", "scanner": "scanner-primary", "fingerprint": "495ea6460e3c58ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65d006fc7bcb1275", "level": "note", "message": {"text": "Legacy-named symbol `yielded_old` in fem2d/tests/test_mc3d.py:74"}, "properties": {"repobilityId": "034b0fdfd18cd992", "scanner": "scanner-primary", "fingerprint": "65d006fc7bcb1275", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7f988b268505a10f", "level": "none", "message": {"text": "Commented-code block (5 lines) in fem2d/tests/test_srm_duncan.py:237"}, "properties": {"repobilityId": "e296c0327556ddc3", "scanner": "scanner-primary", "fingerprint": "7f988b268505a10f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-010a0662e7a69bc4", "level": "none", "message": {"text": "Commented-code block (10 lines) in pile_group/rigid_cap.py:350"}, "properties": {"repobilityId": "aaf9a0e3e2f44429", "scanner": "scanner-primary", "fingerprint": "010a0662e7a69bc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1fb52155e761a66", "level": "none", "message": {"text": "Commented-code block (5 lines) in settlement/immediate.py:207"}, "properties": {"repobilityId": "c98c9d623df1212f", "scanner": "scanner-primary", "fingerprint": "c1fb52155e761a66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "5f6ffc8c8ca562a6", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "9aae0575bc569c7d", "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": "117d951c0b050db4", "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": "c18bd525db12c0cc", "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": "13445d055303911c", "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": "5e3a871322da0927", "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": "3faa42f25ca6e69b", "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": "d53b47f8fa31e438", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "92b5f810b17f97ad", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "675b44def0b19754", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "01fe00c0be0745b1", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "c31f37baf07f48c6", "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": "9eab29d46262dfc1", "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": "2ceda8632a42ccd2", "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": "7309e12f5145583b", "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": "3e1c3c004f4a44bb", "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": "56740e02a923dedf", "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": "daaeb25bb9b7e30d", "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": "feeec5e3eae093c5", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "2d85525cc3c628e3", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}