{"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-487e081d3c15fd0c", "name": "Possibly dead Python function: default_space", "shortDescription": {"text": "Possibly dead Python function: default_space"}, "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-de2fd02efe97e215", "name": "Possibly dead Python function: keep_behind", "shortDescription": {"text": "Possibly dead Python function: keep_behind"}, "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-d4d22371940b1a05", "name": "Possibly dead Python function: make_starfield", "shortDescription": {"text": "Possibly dead Python function: make_starfield"}, "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-15c492923f1e5d43", "name": "Possibly dead Python function: attach_to_camera", "shortDescription": {"text": "Possibly dead Python function: attach_to_camera"}, "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-da53c27d662ba17c", "name": "Possibly dead Python function: make_solar_panel", "shortDescription": {"text": "Possibly dead Python function: make_solar_panel"}, "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-b7c5131e6848a21a", "name": "Possibly dead Python function: gold_foil", "shortDescription": {"text": "Possibly dead Python function: gold_foil"}, "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-11f48aecdb3ec320", "name": "Possibly dead Python function: circularize", "shortDescription": {"text": "Possibly dead Python function: circularize"}, "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-fea6d83c6d0c441a", "name": "Possibly dead Python function: set_autopilot", "shortDescription": {"text": "Possibly dead Python function: set_autopilot"}, "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-275238605b33d620", "name": "Possibly dead Python function: toggle_autopilot", "shortDescription": {"text": "Possibly dead Python function: toggle_autopilot"}, "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-4735e6451b43c419", "name": "Possibly dead Python function: set_throttle", "shortDescription": {"text": "Possibly dead Python function: set_throttle"}, "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-84a7d840e010c0a7", "name": "Possibly dead Python function: los", "shortDescription": {"text": "Possibly dead Python function: los"}, "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-39965c1f77106edc", "name": "Possibly dead Python function: env", "shortDescription": {"text": "Possibly dead Python function: env"}, "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-9fd6874b8616d5a4", "name": "Possibly dead Python function: node_tutorial", "shortDescription": {"text": "Possibly dead Python function: node_tutorial"}, "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-c5de856f80ed957a", "name": "Possibly dead Python function: dock_tutorial", "shortDescription": {"text": "Possibly dead Python function: dock_tutorial"}, "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-9b6261968e3a67d4", "name": "Possibly dead Python function: base_tutorial", "shortDescription": {"text": "Possibly dead Python function: base_tutorial"}, "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-a2fb49e3c03b4f3c", "name": "Possibly dead Python function: forecast", "shortDescription": {"text": "Possibly dead Python function: forecast"}, "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-d2be727ae6d42697", "name": "Possibly dead Python function: night_cycle", "shortDescription": {"text": "Possibly dead Python function: night_cycle"}, "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-2e17c4bbe3dbc3f1", "name": "Possibly dead Python function: landing_offset_km", "shortDescription": {"text": "Possibly dead Python function: landing_offset_km"}, "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-d1cd225821a279cc", "name": "Possibly dead Python function: drop_to_realtime", "shortDescription": {"text": "Possibly dead Python function: drop_to_realtime"}, "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-e649532a9b2f7a5a", "name": "Possibly dead Python function: unpause", "shortDescription": {"text": "Possibly dead Python function: unpause"}, "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-73efdac957901497", "name": "Possibly dead Python function: swap_core", "shortDescription": {"text": "Possibly dead Python function: swap_core"}, "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-1fdf67cb1c889c3e", "name": "Possibly dead Python function: type_state", "shortDescription": {"text": "Possibly dead Python function: type_state"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c22a4622cbb07383", "name": "Possibly dead Python function: mean_y", "shortDescription": {"text": "Possibly dead Python function: mean_y"}, "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-73cf821082465adb", "name": "Possibly dead Python function: validate_e6", "shortDescription": {"text": "Possibly dead Python function: validate_e6"}, "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-4545092c6c575aba", "name": "Possibly dead Python function: tank_capacity_kg", "shortDescription": {"text": "Possibly dead Python function: tank_capacity_kg"}, "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-2772bac6b44a49f8", "name": "Possibly dead Python function: propellant_used", "shortDescription": {"text": "Possibly dead Python function: propellant_used"}, "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-396be8d2fcb6acf8", "name": "Possibly dead Python function: prograde_guidance", "shortDescription": {"text": "Possibly dead Python function: prograde_guidance"}, "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-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4de2148b1ee2a641", "name": "Very large file: aphelion/main.py (8964 lines)", "shortDescription": {"text": "Very large file: aphelion/main.py (8964 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-6a8882cd7f350d82", "name": "Very large file: aphelion/game/countdown.py (1141 lines)", "shortDescription": {"text": "Very large file: aphelion/game/countdown.py (1141 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-b4e7a2f7b0281eaf", "name": "Very large file: aphelion/render/base_art.py (1446 lines)", "shortDescription": {"text": "Very large file: aphelion/render/base_art.py (1446 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-8c5aa56345a231b8", "name": "Very large file: aphelion/render/scenes/interior.py (1139 lines)", "shortDescription": {"text": "Very large file: aphelion/render/scenes/interior.py (1139 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 22 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-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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f8743c4006522a1d", "name": "Commented-code block (5 lines) in aphelion/main.py:590", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/main.py:590"}, "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-f701141a57b6269f", "name": "Legacy-named symbol `contract_v2` in aphelion/tests/test_finance.py:25", "shortDescription": {"text": "Legacy-named symbol `contract_v2` in aphelion/tests/test_finance.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-e29bb7e18b0bcc41", "name": "Commented-code block (5 lines) in aphelion/ui/theme.py:19", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/ui/theme.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-35ec8f779531ba99", "name": "Legacy-named symbol `contract_v2` in aphelion/game/finance.py:388", "shortDescription": {"text": "Legacy-named symbol `contract_v2` in aphelion/game/finance.py:388"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4c5a7a5c8177fb6c", "name": "Commented-code block (8 lines) in aphelion/sim/flight/ascent.py:106", "shortDescription": {"text": "Commented-code block (8 lines) in aphelion/sim/flight/ascent.py:106"}, "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-eed32aae1d6ef51d", "name": "Commented-code block (5 lines) in aphelion/sim/ledger/network.py:166", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/sim/ledger/network.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-be62577585615b56", "name": "Commented-code block (5 lines) in aphelion/sim/vehicles/thermal.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/sim/vehicles/thermal.py:32"}, "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-6b3a069bf6dc184a", "name": "Commented-code block (5 lines) in aphelion/render/scenes/interior.py:643", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/render/scenes/interior.py:643"}, "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-5fd32824530434e3", "name": "Commented-code block (5 lines) in aphelion/render/scenes/dive.py:159", "shortDescription": {"text": "Commented-code block (5 lines) in aphelion/render/scenes/dive.py:159"}, "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-76367a7391f2749a", "name": "Commented-code block (8 lines) in aphelion/render/readouts/greenhouse.py:30", "shortDescription": {"text": "Commented-code block (8 lines) in aphelion/render/readouts/greenhouse.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naphelion3d/sim/launch.py:toggle_autopilot, aphelion3d/sim/launch.py:t\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\naphelion/game/alerts.py:to_dict, aphelion/game/alerts.py:to_dict, aphelion/game/alerts.py:to_dict, aphelion/game/alerts.py:to_dict\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/19137"}, "properties": {"repository": "seangsteinberg-del/Zombie-game", "repoUrl": "https://github.com/seangsteinberg-del/Zombie-game", "branch": "main"}, "results": [{"ruleId": "scanner-487e081d3c15fd0c", "level": "note", "message": {"text": "Possibly dead Python function: default_space"}, "properties": {"repobilityId": "b798870dd14f5f19", "scanner": "scanner-primary", "fingerprint": "487e081d3c15fd0c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/pipeline.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de2fd02efe97e215", "level": "note", "message": {"text": "Possibly dead Python function: keep_behind"}, "properties": {"repobilityId": "5d0de2ccecc00130", "scanner": "scanner-primary", "fingerprint": "de2fd02efe97e215", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/world/glow.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4d22371940b1a05", "level": "note", "message": {"text": "Possibly dead Python function: make_starfield"}, "properties": {"repobilityId": "44e1b7be4ab48242", "scanner": "scanner-primary", "fingerprint": "d4d22371940b1a05", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/world/starfield.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-15c492923f1e5d43", "level": "note", "message": {"text": "Possibly dead Python function: attach_to_camera"}, "properties": {"repobilityId": "5007d5c734556c2d", "scanner": "scanner-primary", "fingerprint": "15c492923f1e5d43", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/world/starfield.py:253"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da53c27d662ba17c", "level": "note", "message": {"text": "Possibly dead Python function: make_solar_panel"}, "properties": {"repobilityId": "99c7add110774185", "scanner": "scanner-primary", "fingerprint": "da53c27d662ba17c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/geometry/parts.py:208"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7c5131e6848a21a", "level": "note", "message": {"text": "Possibly dead Python function: gold_foil"}, "properties": {"repobilityId": "345d5505640b7eb9", "scanner": "scanner-primary", "fingerprint": "b7c5131e6848a21a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/geometry/materials.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11f48aecdb3ec320", "level": "note", "message": {"text": "Possibly dead Python function: circularize"}, "properties": {"repobilityId": "2d9fbdf8e7647ded", "scanner": "scanner-primary", "fingerprint": "11f48aecdb3ec320", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/sim/launch.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fea6d83c6d0c441a", "level": "note", "message": {"text": "Possibly dead Python function: set_autopilot"}, "properties": {"repobilityId": "fb51d8969677321c", "scanner": "scanner-primary", "fingerprint": "fea6d83c6d0c441a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/sim/launch.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-275238605b33d620", "level": "note", "message": {"text": "Possibly dead Python function: toggle_autopilot"}, "properties": {"repobilityId": "c46316b652f84e85", "scanner": "scanner-primary", "fingerprint": "275238605b33d620", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/sim/launch.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4735e6451b43c419", "level": "note", "message": {"text": "Possibly dead Python function: set_throttle"}, "properties": {"repobilityId": "67b3a6c93099e51d", "scanner": "scanner-primary", "fingerprint": "4735e6451b43c419", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion3d/sim/launch.py:66"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-84a7d840e010c0a7", "level": "note", "message": {"text": "Possibly dead Python function: los"}, "properties": {"repobilityId": "1726d5070ad09ea7", "scanner": "scanner-primary", "fingerprint": "84a7d840e010c0a7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/main.py:2466"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-39965c1f77106edc", "level": "note", "message": {"text": "Possibly dead Python function: env"}, "properties": {"repobilityId": "9b17b3ea9c5c023c", "scanner": "scanner-primary", "fingerprint": "39965c1f77106edc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/main.py:2476"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9fd6874b8616d5a4", "level": "note", "message": {"text": "Possibly dead Python function: node_tutorial"}, "properties": {"repobilityId": "0d5b4cb05356623a", "scanner": "scanner-primary", "fingerprint": "9fd6874b8616d5a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/ui/tutorial.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c5de856f80ed957a", "level": "note", "message": {"text": "Possibly dead Python function: dock_tutorial"}, "properties": {"repobilityId": "ae4647673ba3e833", "scanner": "scanner-primary", "fingerprint": "c5de856f80ed957a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/ui/tutorial.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b6261968e3a67d4", "level": "note", "message": {"text": "Possibly dead Python function: base_tutorial"}, "properties": {"repobilityId": "1e2f117aba5691df", "scanner": "scanner-primary", "fingerprint": "9b6261968e3a67d4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/ui/tutorial.py:106"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2fb49e3c03b4f3c", "level": "note", "message": {"text": "Possibly dead Python function: forecast"}, "properties": {"repobilityId": "e424ba060277945f", "scanner": "scanner-primary", "fingerprint": "a2fb49e3c03b4f3c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/game/countdown.py:480"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2be727ae6d42697", "level": "note", "message": {"text": "Possibly dead Python function: night_cycle"}, "properties": {"repobilityId": "3b2457814738b6e1", "scanner": "scanner-primary", "fingerprint": "d2be727ae6d42697", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/game/motorpool.py:74"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2e17c4bbe3dbc3f1", "level": "note", "message": {"text": "Possibly dead Python function: landing_offset_km"}, "properties": {"repobilityId": "23aa9eadf5306e1e", "scanner": "scanner-primary", "fingerprint": "2e17c4bbe3dbc3f1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/game/sectors.py:167"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1cd225821a279cc", "level": "note", "message": {"text": "Possibly dead Python function: drop_to_realtime"}, "properties": {"repobilityId": "23ed1a699a8acd29", "scanner": "scanner-primary", "fingerprint": "d1cd225821a279cc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/core/clock.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e649532a9b2f7a5a", "level": "note", "message": {"text": "Possibly dead Python function: unpause"}, "properties": {"repobilityId": "72e086642e75ac5d", "scanner": "scanner-primary", "fingerprint": "e649532a9b2f7a5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/core/clock.py:151"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73efdac957901497", "level": "note", "message": {"text": "Possibly dead Python function: swap_core"}, "properties": {"repobilityId": "7ffe8d992bea8d78", "scanner": "scanner-primary", "fingerprint": "73efdac957901497", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/reactor.py:149"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fdf67cb1c889c3e", "level": "note", "message": {"text": "Possibly dead Python function: type_state"}, "properties": {"repobilityId": "aaff285bd95abfca", "scanner": "scanner-primary", "fingerprint": "1fdf67cb1c889c3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/research.py:517"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c22a4622cbb07383", "level": "note", "message": {"text": "Possibly dead Python function: mean_y"}, "properties": {"repobilityId": "505a50c8abb26cfa", "scanner": "scanner-primary", "fingerprint": "c22a4622cbb07383", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/vessels/autostage.py:68"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73cf821082465adb", "level": "note", "message": {"text": "Possibly dead Python function: validate_e6"}, "properties": {"repobilityId": "3b091ff7611603e2", "scanner": "scanner-primary", "fingerprint": "73cf821082465adb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/vessels/structure.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4545092c6c575aba", "level": "note", "message": {"text": "Possibly dead Python function: tank_capacity_kg"}, "properties": {"repobilityId": "f5ae9b532ade3acc", "scanner": "scanner-primary", "fingerprint": "4545092c6c575aba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/vessels/docking.py:54"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2772bac6b44a49f8", "level": "note", "message": {"text": "Possibly dead Python function: propellant_used"}, "properties": {"repobilityId": "9493b285a32a405c", "scanner": "scanner-primary", "fingerprint": "2772bac6b44a49f8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/flight/node_exec.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-396be8d2fcb6acf8", "level": "note", "message": {"text": "Possibly dead Python function: prograde_guidance"}, "properties": {"repobilityId": "9c24a7315211ad37", "scanner": "scanner-primary", "fingerprint": "396be8d2fcb6acf8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "aphelion/sim/flight/integrator.py:33"}, "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-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-4de2148b1ee2a641", "level": "note", "message": {"text": "Very large file: aphelion/main.py (8964 lines)"}, "properties": {"repobilityId": "1d076ec52629b111", "scanner": "scanner-primary", "fingerprint": "4de2148b1ee2a641", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a8882cd7f350d82", "level": "note", "message": {"text": "Very large file: aphelion/game/countdown.py (1141 lines)"}, "properties": {"repobilityId": "87fa337790996aab", "scanner": "scanner-primary", "fingerprint": "6a8882cd7f350d82", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b4e7a2f7b0281eaf", "level": "note", "message": {"text": "Very large file: aphelion/render/base_art.py (1446 lines)"}, "properties": {"repobilityId": "8e7b9a9d5eb15006", "scanner": "scanner-primary", "fingerprint": "b4e7a2f7b0281eaf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8c5aa56345a231b8", "level": "note", "message": {"text": "Very large file: aphelion/render/scenes/interior.py (1139 lines)"}, "properties": {"repobilityId": "8a308fbe8ebc0dd3", "scanner": "scanner-primary", "fingerprint": "8c5aa56345a231b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b70b11b9d3ce89f0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b69324d15c5b6553", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "6fe24e08e11ce54e", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "b443e92581a593db", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "5bf90b7b3c7635a8", "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": "9c58f5a9e4ff76e7", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-f8743c4006522a1d", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/main.py:590"}, "properties": {"repobilityId": "584554152820df15", "scanner": "scanner-primary", "fingerprint": "f8743c4006522a1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f701141a57b6269f", "level": "note", "message": {"text": "Legacy-named symbol `contract_v2` in aphelion/tests/test_finance.py:25"}, "properties": {"repobilityId": "3d823204bf97be7f", "scanner": "scanner-primary", "fingerprint": "f701141a57b6269f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e29bb7e18b0bcc41", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/ui/theme.py:19"}, "properties": {"repobilityId": "0d0e04292e4dbf1e", "scanner": "scanner-primary", "fingerprint": "e29bb7e18b0bcc41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35ec8f779531ba99", "level": "note", "message": {"text": "Legacy-named symbol `contract_v2` in aphelion/game/finance.py:388"}, "properties": {"repobilityId": "ae388067b8f5e870", "scanner": "scanner-primary", "fingerprint": "35ec8f779531ba99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4c5a7a5c8177fb6c", "level": "none", "message": {"text": "Commented-code block (8 lines) in aphelion/sim/flight/ascent.py:106"}, "properties": {"repobilityId": "b68974bea0fd19cc", "scanner": "scanner-primary", "fingerprint": "4c5a7a5c8177fb6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eed32aae1d6ef51d", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/sim/ledger/network.py:166"}, "properties": {"repobilityId": "51a394b5cf10c7a9", "scanner": "scanner-primary", "fingerprint": "eed32aae1d6ef51d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be62577585615b56", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/sim/vehicles/thermal.py:32"}, "properties": {"repobilityId": "420e7c4021e261a1", "scanner": "scanner-primary", "fingerprint": "be62577585615b56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b3a069bf6dc184a", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/render/scenes/interior.py:643"}, "properties": {"repobilityId": "19a78684277f4352", "scanner": "scanner-primary", "fingerprint": "6b3a069bf6dc184a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fd32824530434e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in aphelion/render/scenes/dive.py:159"}, "properties": {"repobilityId": "025df8e46c978e9a", "scanner": "scanner-primary", "fingerprint": "5fd32824530434e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76367a7391f2749a", "level": "none", "message": {"text": "Commented-code block (8 lines) in aphelion/render/readouts/greenhouse.py:30"}, "properties": {"repobilityId": "5fee9f4cc2830c50", "scanner": "scanner-primary", "fingerprint": "76367a7391f2749a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "119c12a34c157b6f", "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": "56685232125106c0", "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": "09c505d7452a74ed", "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": "bd3ee1497679a2f9", "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": "bb6ef953bc5a24d2", "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": "b5da465c628bcdab", "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": "6866a70ac84cac4f", "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": "161fc4c5ca8d9002", "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": "39a3164ce68ded1e", "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": "afa933f09807adff", "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": "b22bab33edee7c59", "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": "affa9e13e2f517b2", "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": "5e710c86a47ea8e3", "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": "fb89c22c0f747b8e", "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": "f13f84beec281779", "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": "6091cab3cddad1aa", "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": "5e53c08511928a3c", "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": "5458f8761b71ed42", "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": "a468173f28d22019", "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": "ce36197c6c353f23", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}