{"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-39f699d27398c9b6", "name": "Possibly dead Python function: example_1_basic_character", "shortDescription": {"text": "Possibly dead Python function: example_1_basic_character"}, "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-5ebbcacc380a81a1", "name": "Possibly dead Python function: example_2_character_with_background", "shortDescription": {"text": "Possibly dead Python function: example_2_character_with_background"}, "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-5153b80f7a8da383", "name": "Possibly dead Python function: example_3_spending_xp", "shortDescription": {"text": "Possibly dead Python function: example_3_spending_xp"}, "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-633e2dfca45dfbad", "name": "Possibly dead Python function: example_4_equipment", "shortDescription": {"text": "Possibly dead Python function: example_4_equipment"}, "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-bc48073850732faa", "name": "Possibly dead Python function: example_5_weapon_requirements", "shortDescription": {"text": "Possibly dead Python function: example_5_weapon_requirements"}, "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-25fa5c49fecfa076", "name": "Possibly dead Python function: example_6_save_and_load", "shortDescription": {"text": "Possibly dead Python function: example_6_save_and_load"}, "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-af8a9a79c4aa1902", "name": "Possibly dead Python function: example_7_all_backgrounds", "shortDescription": {"text": "Possibly dead Python function: example_7_all_backgrounds"}, "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-de250873a3264d53", "name": "Possibly dead Python function: example_8_complete_build", "shortDescription": {"text": "Possibly dead Python function: example_8_complete_build"}, "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-ba741569d9adbe1b", "name": "Possibly dead Python function: ui_log", "shortDescription": {"text": "Possibly dead Python function: ui_log"}, "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-b68b1188825f7521", "name": "Possibly dead Python function: move_attacker", "shortDescription": {"text": "Possibly dead Python function: move_attacker"}, "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-d8845e303401d42b", "name": "Possibly dead Python function: cast_spell", "shortDescription": {"text": "Possibly dead Python function: cast_spell"}, "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-018aec4a7c9d00fb", "name": "Possibly dead Python function: unequip_item", "shortDescription": {"text": "Possibly dead Python function: unequip_item"}, "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-cb7e4f1aa9802c4a", "name": "Possibly dead Python function: clear_texture_cache", "shortDescription": {"text": "Possibly dead Python function: clear_texture_cache"}, "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-8f5f57c20d8bbf9c", "name": "Possibly dead Python function: add_row_layout", "shortDescription": {"text": "Possibly dead Python function: add_row_layout"}, "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-a118c10050ecc57d", "name": "Possibly dead Python function: add_widget", "shortDescription": {"text": "Possibly dead Python function: add_widget"}, "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-1ecac7506b0cd79d", "name": "Possibly dead Python function: add_layout", "shortDescription": {"text": "Possibly dead Python function: add_layout"}, "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-5c89d41879dac7b2", "name": "Possibly dead Python function: add_label", "shortDescription": {"text": "Possibly dead Python function: add_label"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-105587a17a7e3f2a", "name": "Possibly dead Python function: add_stretch", "shortDescription": {"text": "Possibly dead Python function: add_stretch"}, "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-f4311b23b1424b47", "name": "Possibly dead Python function: add_spacing", "shortDescription": {"text": "Possibly dead Python function: add_spacing"}, "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-7faf47e052b2b07f", "name": "Possibly dead Python function: content_layout", "shortDescription": {"text": "Possibly dead Python function: content_layout"}, "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-012f7f41f5b639ff", "name": "Possibly dead Python function: start_animation", "shortDescription": {"text": "Possibly dead Python function: start_animation"}, "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-b76bc7070582a6d3", "name": "Possibly dead Python function: complete", "shortDescription": {"text": "Possibly dead Python function: complete"}, "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-4d82040ab8554c81", "name": "Possibly dead Python function: animated_set_current", "shortDescription": {"text": "Possibly dead Python function: animated_set_current"}, "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-b5e6b9b08e3ccd3c", "name": "Possibly dead Python function: start_pulse", "shortDescription": {"text": "Possibly dead Python function: start_pulse"}, "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-79d17cef3ed0c532", "name": "Possibly dead Python function: stop_pulse", "shortDescription": {"text": "Possibly dead Python function: stop_pulse"}, "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-273e659f065f4d2e", "name": "Possibly dead Python function: draw_map_state", "shortDescription": {"text": "Possibly dead Python function: draw_map_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-8db248fce274843f", "name": "Possibly dead Python function: highlight_position", "shortDescription": {"text": "Possibly dead Python function: highlight_position"}, "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-d4dae4879b74ef85", "name": "Possibly dead Python function: wheelEvent", "shortDescription": {"text": "Possibly dead Python function: wheelEvent"}, "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-81b01fd7610031a7", "name": "Stray `console.log` in TS/JS \u2014 archive/apps/orchestrator/src/index.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 archive/apps/orchestrator/src/index.ts:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f4fec3c90bae84c", "name": "Stray `console.log` in TS/JS \u2014 archive/packages/schema/scripts/validate-examples.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 archive/packages/schema/scripts/validate-examples.js:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-010b76895e51f9d9", "name": "Very large file: pyside_app.py (3656 lines)", "shortDescription": {"text": "Very large file: pyside_app.py (3656 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-1bdce2861aaa636d", "name": "Very large file: combat/engine.py (2578 lines)", "shortDescription": {"text": "Very large file: combat/engine.py (2578 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-e719249884a39a9e", "name": "Node manifest has dependencies but no lockfile: archive/apps/orchestrator/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: archive/apps/orchestrator/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b85603cb8ec3f552", "name": "Node manifest has dependencies but no lockfile: archive/packages/schema/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: archive/packages/schema/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 207 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, lockfile. 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": "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-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:\navasim.py:to_dict, avasim.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}}, {"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:\ncombat/items.py:meets_requirements, combat/items.py:meets_requirements, combat/items.py:meets_requirements\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-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ncombat/feat_handlers.py:modify_attack_roll, combat/feat_handlers.py:modify_attack_roll, combat/feat_handlers.py:modify_attack_roll, combat/feat_handlers.py:modify_attack_roll\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-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ncombat/feat_handlers.py:on_hit, combat/feat_handlers.py:on_hit, combat/feat_handlers.py:on_hit, combat/feat_handlers.py:on_hit\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ncombat/feat_handlers.py:on_evade_success, combat/feat_handlers.py:on_evade_success, combat/feat_handlers.py:on_evade_success, combat/feat_handlers.py:on_evade_success\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-7655e1de4fb19dd3", "name": "Unused endpoint: POST /run/start", "shortDescription": {"text": "Unused endpoint: POST /run/start"}, "fullDescription": {"text": "`archive/apps/orchestrator/src/index.ts` declares `POST /run/start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27f266f675d0dbd1", "name": "Unused endpoint: GET /run/:runId/events", "shortDescription": {"text": "Unused endpoint: GET /run/:runId/events"}, "fullDescription": {"text": "`archive/apps/orchestrator/src/index.ts` declares `GET /run/:runId/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22407"}, "properties": {"repository": "Von-Van/avasim", "repoUrl": "https://github.com/Von-Van/avasim", "branch": "main"}, "results": [{"ruleId": "scanner-39f699d27398c9b6", "level": "note", "message": {"text": "Possibly dead Python function: example_1_basic_character"}, "properties": {"repobilityId": "7a3153afe1862cd7", "scanner": "scanner-primary", "fingerprint": "39f699d27398c9b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ebbcacc380a81a1", "level": "note", "message": {"text": "Possibly dead Python function: example_2_character_with_background"}, "properties": {"repobilityId": "0bd90859e9ef17c7", "scanner": "scanner-primary", "fingerprint": "5ebbcacc380a81a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5153b80f7a8da383", "level": "note", "message": {"text": "Possibly dead Python function: example_3_spending_xp"}, "properties": {"repobilityId": "d98ef7a6138d6a60", "scanner": "scanner-primary", "fingerprint": "5153b80f7a8da383", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:36"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-633e2dfca45dfbad", "level": "note", "message": {"text": "Possibly dead Python function: example_4_equipment"}, "properties": {"repobilityId": "04d44c5bd383709f", "scanner": "scanner-primary", "fingerprint": "633e2dfca45dfbad", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:60"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bc48073850732faa", "level": "note", "message": {"text": "Possibly dead Python function: example_5_weapon_requirements"}, "properties": {"repobilityId": "fed5ce0929afa8ef", "scanner": "scanner-primary", "fingerprint": "bc48073850732faa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:91"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25fa5c49fecfa076", "level": "note", "message": {"text": "Possibly dead Python function: example_6_save_and_load"}, "properties": {"repobilityId": "413069c195038068", "scanner": "scanner-primary", "fingerprint": "25fa5c49fecfa076", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af8a9a79c4aa1902", "level": "note", "message": {"text": "Possibly dead Python function: example_7_all_backgrounds"}, "properties": {"repobilityId": "f9981ca1e75ce7a1", "scanner": "scanner-primary", "fingerprint": "af8a9a79c4aa1902", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:180"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de250873a3264d53", "level": "note", "message": {"text": "Possibly dead Python function: example_8_complete_build"}, "properties": {"repobilityId": "d7eb99c3031fc4f8", "scanner": "scanner-primary", "fingerprint": "de250873a3264d53", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples.py:198"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba741569d9adbe1b", "level": "note", "message": {"text": "Possibly dead Python function: ui_log"}, "properties": {"repobilityId": "cbaad0cc40683dba", "scanner": "scanner-primary", "fingerprint": "ba741569d9adbe1b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pyside_app.py:2440"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b68b1188825f7521", "level": "note", "message": {"text": "Possibly dead Python function: move_attacker"}, "properties": {"repobilityId": "b5356ad3b61c2dc7", "scanner": "scanner-primary", "fingerprint": "b68b1188825f7521", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pyside_app.py:2563"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8845e303401d42b", "level": "note", "message": {"text": "Possibly dead Python function: cast_spell"}, "properties": {"repobilityId": "a8488c1a53f57bcf", "scanner": "scanner-primary", "fingerprint": "d8845e303401d42b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pyside_app.py:2587"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-018aec4a7c9d00fb", "level": "note", "message": {"text": "Possibly dead Python function: unequip_item"}, "properties": {"repobilityId": "98437d31ab2ca294", "scanner": "scanner-primary", "fingerprint": "018aec4a7c9d00fb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "avasim.py:406"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb7e4f1aa9802c4a", "level": "note", "message": {"text": "Possibly dead Python function: clear_texture_cache"}, "properties": {"repobilityId": "cc2a958ceb485946", "scanner": "scanner-primary", "fingerprint": "cb7e4f1aa9802c4a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/texture_generator.py:250"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8f5f57c20d8bbf9c", "level": "note", "message": {"text": "Possibly dead Python function: add_row_layout"}, "properties": {"repobilityId": "bdf6395c9e90535b", "scanner": "scanner-primary", "fingerprint": "8f5f57c20d8bbf9c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a118c10050ecc57d", "level": "note", "message": {"text": "Possibly dead Python function: add_widget"}, "properties": {"repobilityId": "e11dc50b41ac2b09", "scanner": "scanner-primary", "fingerprint": "a118c10050ecc57d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:148"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1ecac7506b0cd79d", "level": "note", "message": {"text": "Possibly dead Python function: add_layout"}, "properties": {"repobilityId": "9785a667931bb029", "scanner": "scanner-primary", "fingerprint": "1ecac7506b0cd79d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:127"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c89d41879dac7b2", "level": "note", "message": {"text": "Possibly dead Python function: add_label"}, "properties": {"repobilityId": "4bdebb5d79bc0ba6", "scanner": "scanner-primary", "fingerprint": "5c89d41879dac7b2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:142"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-105587a17a7e3f2a", "level": "note", "message": {"text": "Possibly dead Python function: add_stretch"}, "properties": {"repobilityId": "97dbe2d60b839a6d", "scanner": "scanner-primary", "fingerprint": "105587a17a7e3f2a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:153"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4311b23b1424b47", "level": "note", "message": {"text": "Possibly dead Python function: add_spacing"}, "properties": {"repobilityId": "660b4f50c73fb431", "scanner": "scanner-primary", "fingerprint": "f4311b23b1424b47", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7faf47e052b2b07f", "level": "note", "message": {"text": "Possibly dead Python function: content_layout"}, "properties": {"repobilityId": "396e46252424250a", "scanner": "scanner-primary", "fingerprint": "7faf47e052b2b07f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/components.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-012f7f41f5b639ff", "level": "note", "message": {"text": "Possibly dead Python function: start_animation"}, "properties": {"repobilityId": "8072cc74cba52ed2", "scanner": "scanner-primary", "fingerprint": "012f7f41f5b639ff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/animations.py:57"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b76bc7070582a6d3", "level": "note", "message": {"text": "Possibly dead Python function: complete"}, "properties": {"repobilityId": "2cd410261b2c8df4", "scanner": "scanner-primary", "fingerprint": "b76bc7070582a6d3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/animations.py:72"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4d82040ab8554c81", "level": "note", "message": {"text": "Possibly dead Python function: animated_set_current"}, "properties": {"repobilityId": "5469f8a765f6445b", "scanner": "scanner-primary", "fingerprint": "4d82040ab8554c81", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/animations.py:89"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5e6b9b08e3ccd3c", "level": "note", "message": {"text": "Possibly dead Python function: start_pulse"}, "properties": {"repobilityId": "a782460df7422e59", "scanner": "scanner-primary", "fingerprint": "b5e6b9b08e3ccd3c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/animations.py:115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79d17cef3ed0c532", "level": "note", "message": {"text": "Possibly dead Python function: stop_pulse"}, "properties": {"repobilityId": "70bf3833be6fc89e", "scanner": "scanner-primary", "fingerprint": "79d17cef3ed0c532", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/animations.py:119"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-273e659f065f4d2e", "level": "note", "message": {"text": "Possibly dead Python function: draw_map_state"}, "properties": {"repobilityId": "e6d59297f9e00b70", "scanner": "scanner-primary", "fingerprint": "273e659f065f4d2e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/map_widget.py:185"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8db248fce274843f", "level": "note", "message": {"text": "Possibly dead Python function: highlight_position"}, "properties": {"repobilityId": "a8ac97df25be3d2f", "scanner": "scanner-primary", "fingerprint": "8db248fce274843f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/map_widget.py:196"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d4dae4879b74ef85", "level": "note", "message": {"text": "Possibly dead Python function: wheelEvent"}, "properties": {"repobilityId": "b3d7c88b0e80d75a", "scanner": "scanner-primary", "fingerprint": "d4dae4879b74ef85", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ui/map_widget.py:293"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81b01fd7610031a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 archive/apps/orchestrator/src/index.ts:57"}, "properties": {"repobilityId": "c0ca17ef14c7a701", "scanner": "scanner-primary", "fingerprint": "81b01fd7610031a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f4fec3c90bae84c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 archive/packages/schema/scripts/validate-examples.js:38"}, "properties": {"repobilityId": "8ecc3a09a383a86b", "scanner": "scanner-primary", "fingerprint": "9f4fec3c90bae84c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-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-010b76895e51f9d9", "level": "note", "message": {"text": "Very large file: pyside_app.py (3656 lines)"}, "properties": {"repobilityId": "1a4edbcd59b983ac", "scanner": "scanner-primary", "fingerprint": "010b76895e51f9d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1bdce2861aaa636d", "level": "note", "message": {"text": "Very large file: combat/engine.py (2578 lines)"}, "properties": {"repobilityId": "c66eff8d4abd6a5c", "scanner": "scanner-primary", "fingerprint": "1bdce2861aaa636d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b110d27dae3b8f1a", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-e719249884a39a9e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: archive/apps/orchestrator/package.json"}, "properties": {"repobilityId": "e096f2c411518c74", "scanner": "scanner-primary", "fingerprint": "e719249884a39a9e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/apps/orchestrator/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b85603cb8ec3f552", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: archive/packages/schema/package.json"}, "properties": {"repobilityId": "e2e8bc049353588c", "scanner": "scanner-primary", "fingerprint": "b85603cb8ec3f552", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "archive/packages/schema/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "24682aeb3d6e8279", "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": "14b862b5e201cfa9", "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": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "7f0a14e925f6dfcf", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "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": "5e159320935214d4", "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": "9780e3651732ec63", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e4de0d43015b94cf", "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": "887156c91d97dae0", "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": "6bd7893cb82c881b", "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": "e5d036384001e41e", "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": "60b3729744eb9198", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "ec30a0fe013c1d23", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "df1dc2282eb5ba17", "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": "2814c4d18670a831", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "9240770f1dbc844a", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "1c72c6f716a4320c", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "6c1662d12c2a6d7e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "1e80acc8a60b57bd", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "d168ee83a13d36ed", "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": "f477107d0805681d", "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": "bf9b8e93babd0611", "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": "2b56fcb66c013330", "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": "f863d2db862697ec", "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": "8fca45835080bf56", "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": "9345ba806864661d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "15a4173d44ea9c43", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-7655e1de4fb19dd3", "level": "note", "message": {"text": "Unused endpoint: POST /run/start"}, "properties": {"repobilityId": "803fb81f3bd2aba9", "scanner": "scanner-primary", "fingerprint": "7655e1de4fb19dd3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-27f266f675d0dbd1", "level": "note", "message": {"text": "Unused endpoint: GET /run/:runId/events"}, "properties": {"repobilityId": "f3dac0c58a082c17", "scanner": "scanner-primary", "fingerprint": "27f266f675d0dbd1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}