{"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-a3f27618f0e7668c", "name": "Possibly dead Python function: keep_cyan_slash_effect", "shortDescription": {"text": "Possibly dead Python function: keep_cyan_slash_effect"}, "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-3458080b9c7ba7aa", "name": "Possibly dead Python function: attack_source_cell", "shortDescription": {"text": "Possibly dead Python function: attack_source_cell"}, "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-974126be1addbb37", "name": "Possibly dead Python function: land_soft", "shortDescription": {"text": "Possibly dead Python function: land_soft"}, "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-09478a39b9cab347", "name": "Possibly dead Python function: satchel_leather", "shortDescription": {"text": "Possibly dead Python function: satchel_leather"}, "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-f76cc1d38a229efc", "name": "Possibly dead Python function: satchel_buckle", "shortDescription": {"text": "Possibly dead Python function: satchel_buckle"}, "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-5181b81967b81f5a", "name": "Possibly dead Python function: metal_click", "shortDescription": {"text": "Possibly dead Python function: metal_click"}, "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-0602d080e1eaa98b", "name": "Possibly dead Python function: relic_shard", "shortDescription": {"text": "Possibly dead Python function: relic_shard"}, "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-663349cfee70eb96", "name": "Possibly dead Python function: enemy_hit", "shortDescription": {"text": "Possibly dead Python function: enemy_hit"}, "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-3b07a82660d2c650", "name": "Possibly dead Python function: player_hit", "shortDescription": {"text": "Possibly dead Python function: player_hit"}, "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-61738d09ee8e1d9d", "name": "Possibly dead Python function: boss_warning", "shortDescription": {"text": "Possibly dead Python function: boss_warning"}, "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-4221c427f860eb9f", "name": "Possibly dead Python function: stone_gate_open", "shortDescription": {"text": "Possibly dead Python function: stone_gate_open"}, "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-d75fffeb64866cf6", "name": "Possibly dead Python function: stone_gate_blocked", "shortDescription": {"text": "Possibly dead Python function: stone_gate_blocked"}, "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-9c49244c22275309", "name": "Possibly dead Python function: temple_stone_groan", "shortDescription": {"text": "Possibly dead Python function: temple_stone_groan"}, "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-7b365794131a9eb5", "name": "Possibly dead Python function: distant_monster_call", "shortDescription": {"text": "Possibly dead Python function: distant_monster_call"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdaddddd10eb2f91", "name": "Possibly dead Python function: major_cave_in", "shortDescription": {"text": "Possibly dead Python function: major_cave_in"}, "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-95510d36f14128b4", "name": "Possibly dead Python function: structure_ripping", "shortDescription": {"text": "Possibly dead Python function: structure_ripping"}, "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-9573d6e2d905e5d5", "name": "Possibly dead Python function: combat_danger_hit", "shortDescription": {"text": "Possibly dead Python function: combat_danger_hit"}, "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-dbd2456f801ce4f4", "name": "Possibly dead Python function: asha_hurt_breath", "shortDescription": {"text": "Possibly dead Python function: asha_hurt_breath"}, "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-1814e2c1d005fdc4", "name": "Possibly dead Python function: temple_door_boom", "shortDescription": {"text": "Possibly dead Python function: temple_door_boom"}, "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-de0e3e3dbb84efb5", "name": "Possibly dead Python function: sandfall_stone_cascade", "shortDescription": {"text": "Possibly dead Python function: sandfall_stone_cascade"}, "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-ac9816ec43eac7db", "name": "Possibly dead Python function: catacomb_deep_breath", "shortDescription": {"text": "Possibly dead Python function: catacomb_deep_breath"}, "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-91ad22e3db544188", "name": "Possibly dead Python function: catacomb_fog_whisper", "shortDescription": {"text": "Possibly dead Python function: catacomb_fog_whisper"}, "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-ce7b04a0e79ea689", "name": "Possibly dead Python function: bridge_stone_crack", "shortDescription": {"text": "Possibly dead Python function: bridge_stone_crack"}, "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-845b93f36ed8000a", "name": "Possibly dead Python function: unstable_excavation_tremor", "shortDescription": {"text": "Possibly dead Python function: unstable_excavation_tremor"}, "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-fd9a094ba779bfaa", "name": "Possibly dead Python function: final_guardian_dread", "shortDescription": {"text": "Possibly dead Python function: final_guardian_dread"}, "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-aedb5a3c17fa4e29", "name": "Possibly dead Python function: void_bass_swell", "shortDescription": {"text": "Possibly dead Python function: void_bass_swell"}, "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-2d3b2dd141add69d", "name": "Possibly dead Python function: underworld_heart_drone", "shortDescription": {"text": "Possibly dead Python function: underworld_heart_drone"}, "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-b0caf3aea93c53a9", "name": "Possibly dead Python function: reality_tear_rumble", "shortDescription": {"text": "Possibly dead Python function: reality_tear_rumble"}, "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-d3c14092afee45ee", "name": "Possibly dead Python function: scarab_touch_whisper", "shortDescription": {"text": "Possibly dead Python function: scarab_touch_whisper"}, "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-a624b7ab99561d14", "name": "Possibly dead Python function: threshold_reality_tear", "shortDescription": {"text": "Possibly dead Python function: threshold_reality_tear"}, "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-3c337468ca6c9810", "name": "Stray `console.log` in TS/JS \u2014 src/App.jsx:1240", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/App.jsx:1240"}, "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-3b62c222957230dd", "name": "Stray `console.log` in TS/JS \u2014 src/utils/gameLogic.js:877", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/gameLogic.js:877"}, "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-bec90b8b72e7ed6c", "name": "Stray `console.log` in TS/JS \u2014 scratch/check_braces.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scratch/check_braces.js:15"}, "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-40b40b80bad332d1", "name": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map.js:21"}, "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-5d268a4786ac202e", "name": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map_data.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map_data.js:40"}, "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-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-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad6701f0a8405e22", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80c61b6863e79349", "name": "Very large file: scripts/generate_enemy_sprite_sheets.py (1207 lines)", "shortDescription": {"text": "Very large file: scripts/generate_enemy_sprite_sheets.py (1207 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-776de4829fe7f1ce", "name": "Very large file: src/App.jsx (1701 lines)", "shortDescription": {"text": "Very large file: src/App.jsx (1701 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-2ebc3cd735372116", "name": "Very large file: src/components/ExpeditionMode.jsx (7177 lines)", "shortDescription": {"text": "Very large file: src/components/ExpeditionMode.jsx (7177 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-e54a0a9f425ef8a1", "name": "Very large file: src/components/expedition-journey/journeySecrets.test.js (5827 lines)", "shortDescription": {"text": "Very large file: src/components/expedition-journey/journeySecrets.test.js (5827 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-d03d4a03005fb96b", "name": "Very large file: src/components/expedition-journey/journeyLevelData.js (1940 lines)", "shortDescription": {"text": "Very large file: src/components/expedition-journey/journeyLevelData.js (1940 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-f6f38b8ad2b31815", "name": "Very large file: src/components/expedition-journey/journeyUtils.js (2028 lines)", "shortDescription": {"text": "Very large file: src/components/expedition-journey/journeyUtils.js (2028 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-5d2aee01f6c60224", "name": "Very large file: src/components/expedition-journey/journeyPlacementOverrides.generated.js (3561 lines)", "shortDescription": {"text": "Very large file: src/components/expedition-journey/journeyPlacementOverrides.generated.js (3561 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "21 tests / 91 src (ratio 0.23)."}, "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 49 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 19 placeholder/mock markers across 13 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2679282aa1c484b5", "name": "Agent authority lacks a verifier contract: AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b590a26fcbcca99", "name": "Commented-code block (5 lines) in scripts/journeyOverridesDevPlugin.mjs:12", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/journeyOverridesDevPlugin.mjs:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-863a2d6d3d79f9a6", "name": "Commented-code block (6 lines) in src/components/ExpeditionMode.jsx:4222", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ExpeditionMode.jsx:4222"}, "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-7f30dafddf2fd650", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/full-investigation/fullInvestigationAssets.js:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/full-investigation/fullInvestigationAssets.js:69"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b31427930b42b352", "name": "Commented-code block (9 lines) in src/components/tut-inquiry/tutInquiryData.js:192", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/tut-inquiry/tutInquiryData.js:192"}, "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-81ee4427cbf22d93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/expeditionMapAssets.js:338", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/expeditionMapAssets.js:338"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-667269efbe0cb7a7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/rome/romeMapAssets.js:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/rome/romeMapAssets.js:97"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5143246ab660dcf2", "name": "Commented-code block (5 lines) in src/components/expedition-journey/journeySecrets.test.js:5250", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeySecrets.test.js:5250"}, "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-b3b9cf818d02927e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyRenderAssets.js:285", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyRenderAssets.js:285"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b2e8ed6980205574", "name": "Commented-code block (5 lines) in src/components/expedition-journey/journeyPropBlendOverrides.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyPropBlendOverrides.js:1"}, "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-4a49a5204da524e0", "name": "Commented-code block (5 lines) in src/components/expedition-journey/journeyConstants.js:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyConstants.js:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-776df8a903309e85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyCollectibleSprites.js:92", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyCollectibleSprites.js:92"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6bc7af17352b6fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyPlayerWeaponSprites.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyPlayerWeaponSprites.js:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db5ca954be81b56b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBackgroundAssets.js:155", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBackgroundAssets.js:155"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca6497ed42dddbfb", "name": "Commented-code block (5 lines) in src/components/expedition-journey/journeyLevelData.js:67", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyLevelData.js:67"}, "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-f203e41747437d6c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBossSprites.js:239", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBossSprites.js:239"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e42b689d2b39b51c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyMarkerSprites.js:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyMarkerSprites.js:49"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6adf583c4da0aa82", "name": "Commented-code block (10 lines) in src/components/expedition-journey/journeyUtils.js:1653", "shortDescription": {"text": "Commented-code block (10 lines) in src/components/expedition-journey/journeyUtils.js:1653"}, "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-0d6970f554853ac3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyEnemySprites.js:415", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyEnemySprites.js:415"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-605a87537f14b097", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeBossSprites.js:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeBossSprites.js:117"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4b6773ac522fbeb4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeEnemySprites.js:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeEnemySprites.js:97"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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:\nscripts/rebuild_hooded_asha_atlas.py:frame_key, scripts/build_asha_v5_atlas.py:frame_key, scripts/build_asha_final_production_atlas.py:frame_key\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:\nscripts/rebuild_hooded_asha_atlas.py:remove_checkerboard_background, scripts/rebuild_hooded_asha_atlas.py:remove_chroma_green_background, scripts/rebuild_hooded_asha_atlas.py:keep_cyan_slash_effect, scripts/build_asha_v3_candidate_atlas.py:remove_chroma_green_background\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:\nscripts/rebuild_hooded_asha_atlas.py:measure_bounds, scripts/build_asha_v5_atlas.py:measure_bounds, scripts/build_asha_new_idle_atlas.py:measure_bounds, scripts/build_asha_v4_atlas.py:measure_bounds\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-76a2f6818267a9a8", "name": "Near-duplicate function bodies in 8 places", "shortDescription": {"text": "Near-duplicate function bodies in 8 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/rebuild_hooded_asha_atlas.py:paste_sprite_cell, scripts/build_asha_v5_atlas.py:paste_sprite_cell, scripts/build_asha_new_idle_atlas.py:paste_sprite_cell, scripts/build_asha_v4_atlas.py:paste_sprite_cell\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:\nscripts/build_asha_v5_atlas.py:remove_checkerboard_background, scripts/build_bes_guardian_atlas.py:remove_checkerboard_background, scripts/build_asha_v4_atlas.py:remove_checkerboard_background, scripts/build_asha_final_production_atlas.py:remove_checkerboard_background\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:\nscripts/build_asha_v5_atlas.py:main, scripts/build_asha_new_idle_atlas.py:main, scripts/build_asha_v4_atlas.py:main, scripts/build_asha_v3_candidate_atlas.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/generate_enemy_sprite_sheets.py:draw_scarab_queen_body, scripts/generate_enemy_sprite_sheets.py:draw_scarab\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/25456"}, "properties": {"repository": "dmaher42/Archaeology-Dig-App", "repoUrl": "https://github.com/dmaher42/Archaeology-Dig-App", "branch": "main"}, "results": [{"ruleId": "scanner-a3f27618f0e7668c", "level": "note", "message": {"text": "Possibly dead Python function: keep_cyan_slash_effect"}, "properties": {"repobilityId": "4052599343b1dff6", "scanner": "scanner-primary", "fingerprint": "a3f27618f0e7668c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/rebuild_hooded_asha_atlas.py:130"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3458080b9c7ba7aa", "level": "note", "message": {"text": "Possibly dead Python function: attack_source_cell"}, "properties": {"repobilityId": "857ce0883d433674", "scanner": "scanner-primary", "fingerprint": "3458080b9c7ba7aa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/rebuild_hooded_asha_atlas.py:266"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-974126be1addbb37", "level": "note", "message": {"text": "Possibly dead Python function: land_soft"}, "properties": {"repobilityId": "01bc01124880f962", "scanner": "scanner-primary", "fingerprint": "974126be1addbb37", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:144"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09478a39b9cab347", "level": "note", "message": {"text": "Possibly dead Python function: satchel_leather"}, "properties": {"repobilityId": "f3e87a0f8d6d6123", "scanner": "scanner-primary", "fingerprint": "09478a39b9cab347", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:151"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f76cc1d38a229efc", "level": "note", "message": {"text": "Possibly dead Python function: satchel_buckle"}, "properties": {"repobilityId": "da0ae1d8c40bff21", "scanner": "scanner-primary", "fingerprint": "f76cc1d38a229efc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:157"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5181b81967b81f5a", "level": "note", "message": {"text": "Possibly dead Python function: metal_click"}, "properties": {"repobilityId": "396a81c8e06b24bc", "scanner": "scanner-primary", "fingerprint": "5181b81967b81f5a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:163"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0602d080e1eaa98b", "level": "note", "message": {"text": "Possibly dead Python function: relic_shard"}, "properties": {"repobilityId": "80e392e6040f201f", "scanner": "scanner-primary", "fingerprint": "0602d080e1eaa98b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:170"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-663349cfee70eb96", "level": "note", "message": {"text": "Possibly dead Python function: enemy_hit"}, "properties": {"repobilityId": "3130a508cc2c985a", "scanner": "scanner-primary", "fingerprint": "663349cfee70eb96", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:180"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3b07a82660d2c650", "level": "note", "message": {"text": "Possibly dead Python function: player_hit"}, "properties": {"repobilityId": "f9aff2d1d9327a69", "scanner": "scanner-primary", "fingerprint": "3b07a82660d2c650", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:187"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-61738d09ee8e1d9d", "level": "note", "message": {"text": "Possibly dead Python function: boss_warning"}, "properties": {"repobilityId": "8cf78590003e551e", "scanner": "scanner-primary", "fingerprint": "61738d09ee8e1d9d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:194"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4221c427f860eb9f", "level": "note", "message": {"text": "Possibly dead Python function: stone_gate_open"}, "properties": {"repobilityId": "8831598903c5eede", "scanner": "scanner-primary", "fingerprint": "4221c427f860eb9f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:201"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d75fffeb64866cf6", "level": "note", "message": {"text": "Possibly dead Python function: stone_gate_blocked"}, "properties": {"repobilityId": "4204c37cf1b2a14b", "scanner": "scanner-primary", "fingerprint": "d75fffeb64866cf6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:208"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c49244c22275309", "level": "note", "message": {"text": "Possibly dead Python function: temple_stone_groan"}, "properties": {"repobilityId": "d04b23a02460d8cc", "scanner": "scanner-primary", "fingerprint": "9c49244c22275309", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:230"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b365794131a9eb5", "level": "note", "message": {"text": "Possibly dead Python function: distant_monster_call"}, "properties": {"repobilityId": "1c440a831ebae6f5", "scanner": "scanner-primary", "fingerprint": "7b365794131a9eb5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:244"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cdaddddd10eb2f91", "level": "note", "message": {"text": "Possibly dead Python function: major_cave_in"}, "properties": {"repobilityId": "f3a6fd44248d4c6f", "scanner": "scanner-primary", "fingerprint": "cdaddddd10eb2f91", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:253"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95510d36f14128b4", "level": "note", "message": {"text": "Possibly dead Python function: structure_ripping"}, "properties": {"repobilityId": "6c09f14caeaace7e", "scanner": "scanner-primary", "fingerprint": "95510d36f14128b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:260"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9573d6e2d905e5d5", "level": "note", "message": {"text": "Possibly dead Python function: combat_danger_hit"}, "properties": {"repobilityId": "a5375a2cef592cdc", "scanner": "scanner-primary", "fingerprint": "9573d6e2d905e5d5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:270"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dbd2456f801ce4f4", "level": "note", "message": {"text": "Possibly dead Python function: asha_hurt_breath"}, "properties": {"repobilityId": "b2014c5d022c1752", "scanner": "scanner-primary", "fingerprint": "dbd2456f801ce4f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:277"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1814e2c1d005fdc4", "level": "note", "message": {"text": "Possibly dead Python function: temple_door_boom"}, "properties": {"repobilityId": "567389cefcd9ec13", "scanner": "scanner-primary", "fingerprint": "1814e2c1d005fdc4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:284"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-de0e3e3dbb84efb5", "level": "note", "message": {"text": "Possibly dead Python function: sandfall_stone_cascade"}, "properties": {"repobilityId": "46b75ed522763092", "scanner": "scanner-primary", "fingerprint": "de0e3e3dbb84efb5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:291"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ac9816ec43eac7db", "level": "note", "message": {"text": "Possibly dead Python function: catacomb_deep_breath"}, "properties": {"repobilityId": "cf6b1d8e61d1681d", "scanner": "scanner-primary", "fingerprint": "ac9816ec43eac7db", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:301"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-91ad22e3db544188", "level": "note", "message": {"text": "Possibly dead Python function: catacomb_fog_whisper"}, "properties": {"repobilityId": "5c35537cfdff01ac", "scanner": "scanner-primary", "fingerprint": "91ad22e3db544188", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:308"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce7b04a0e79ea689", "level": "note", "message": {"text": "Possibly dead Python function: bridge_stone_crack"}, "properties": {"repobilityId": "d2ef2e6d6a5909b8", "scanner": "scanner-primary", "fingerprint": "ce7b04a0e79ea689", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:315"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-845b93f36ed8000a", "level": "note", "message": {"text": "Possibly dead Python function: unstable_excavation_tremor"}, "properties": {"repobilityId": "02851cc1bc48d378", "scanner": "scanner-primary", "fingerprint": "845b93f36ed8000a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:322"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd9a094ba779bfaa", "level": "note", "message": {"text": "Possibly dead Python function: final_guardian_dread"}, "properties": {"repobilityId": "1c0726e50e842cd9", "scanner": "scanner-primary", "fingerprint": "fd9a094ba779bfaa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:329"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aedb5a3c17fa4e29", "level": "note", "message": {"text": "Possibly dead Python function: void_bass_swell"}, "properties": {"repobilityId": "5d34e79af540b8d3", "scanner": "scanner-primary", "fingerprint": "aedb5a3c17fa4e29", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:336"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d3b2dd141add69d", "level": "note", "message": {"text": "Possibly dead Python function: underworld_heart_drone"}, "properties": {"repobilityId": "1ecf7219844706a9", "scanner": "scanner-primary", "fingerprint": "2d3b2dd141add69d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:345"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b0caf3aea93c53a9", "level": "note", "message": {"text": "Possibly dead Python function: reality_tear_rumble"}, "properties": {"repobilityId": "5b993249a81d8315", "scanner": "scanner-primary", "fingerprint": "b0caf3aea93c53a9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:356"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3c14092afee45ee", "level": "note", "message": {"text": "Possibly dead Python function: scarab_touch_whisper"}, "properties": {"repobilityId": "2df7bed69debe481", "scanner": "scanner-primary", "fingerprint": "d3c14092afee45ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:366"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a624b7ab99561d14", "level": "note", "message": {"text": "Possibly dead Python function: threshold_reality_tear"}, "properties": {"repobilityId": "d506d27ba0439f14", "scanner": "scanner-primary", "fingerprint": "a624b7ab99561d14", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/generate_expedition_sfx.py:377"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c337468ca6c9810", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/App.jsx:1240"}, "properties": {"repobilityId": "04de5bf5c80ff75c", "scanner": "scanner-primary", "fingerprint": "3c337468ca6c9810", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b62c222957230dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/gameLogic.js:877"}, "properties": {"repobilityId": "631e6f763c6b2c55", "scanner": "scanner-primary", "fingerprint": "3b62c222957230dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bec90b8b72e7ed6c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scratch/check_braces.js:15"}, "properties": {"repobilityId": "a45e894cb85641a7", "scanner": "scanner-primary", "fingerprint": "bec90b8b72e7ed6c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40b40b80bad332d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map.js:21"}, "properties": {"repobilityId": "3657d19102226440", "scanner": "scanner-primary", "fingerprint": "40b40b80bad332d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d268a4786ac202e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scratch/map_gen/gen_map_data.js:40"}, "properties": {"repobilityId": "cc837123b7ec318c", "scanner": "scanner-primary", "fingerprint": "5d268a4786ac202e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2aee2e2d969c7c6b", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bee6b8956e03198c", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7368aacdd03a98e3", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b70dbcc8f54d72ab", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "419d1ec7943efec2", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80c61b6863e79349", "level": "note", "message": {"text": "Very large file: scripts/generate_enemy_sprite_sheets.py (1207 lines)"}, "properties": {"repobilityId": "857a3e0da74ba675", "scanner": "scanner-primary", "fingerprint": "80c61b6863e79349", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-776de4829fe7f1ce", "level": "note", "message": {"text": "Very large file: src/App.jsx (1701 lines)"}, "properties": {"repobilityId": "a59a84e7052cf35b", "scanner": "scanner-primary", "fingerprint": "776de4829fe7f1ce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2ebc3cd735372116", "level": "note", "message": {"text": "Very large file: src/components/ExpeditionMode.jsx (7177 lines)"}, "properties": {"repobilityId": "15039b8c6d8523a1", "scanner": "scanner-primary", "fingerprint": "2ebc3cd735372116", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e54a0a9f425ef8a1", "level": "note", "message": {"text": "Very large file: src/components/expedition-journey/journeySecrets.test.js (5827 lines)"}, "properties": {"repobilityId": "c2536c027a6b7fde", "scanner": "scanner-primary", "fingerprint": "e54a0a9f425ef8a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d03d4a03005fb96b", "level": "note", "message": {"text": "Very large file: src/components/expedition-journey/journeyLevelData.js (1940 lines)"}, "properties": {"repobilityId": "5037906e16e4ee28", "scanner": "scanner-primary", "fingerprint": "d03d4a03005fb96b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f6f38b8ad2b31815", "level": "note", "message": {"text": "Very large file: src/components/expedition-journey/journeyUtils.js (2028 lines)"}, "properties": {"repobilityId": "4ef7ee76b3eec793", "scanner": "scanner-primary", "fingerprint": "f6f38b8ad2b31815", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d2aee01f6c60224", "level": "note", "message": {"text": "Very large file: src/components/expedition-journey/journeyPlacementOverrides.generated.js (3561 lines)"}, "properties": {"repobilityId": "70d79f52a64db6a8", "scanner": "scanner-primary", "fingerprint": "5d2aee01f6c60224", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "27a2f2de5e028da6", "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": "e8e53729ed696346", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "da020b8c0a95a1f9", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "ffb966cf884ca67b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "e085110d9d288b57", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2679282aa1c484b5", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: AGENTS.md"}, "properties": {"repobilityId": "27d579812e6be614", "scanner": "scanner-primary", "fingerprint": "2679282aa1c484b5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "agents_md"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b590a26fcbcca99", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/journeyOverridesDevPlugin.mjs:12"}, "properties": {"repobilityId": "219aa7a84d9c1307", "scanner": "scanner-primary", "fingerprint": "7b590a26fcbcca99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-863a2d6d3d79f9a6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ExpeditionMode.jsx:4222"}, "properties": {"repobilityId": "3e0626a00ebf3e41", "scanner": "scanner-primary", "fingerprint": "863a2d6d3d79f9a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f30dafddf2fd650", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/full-investigation/fullInvestigationAssets.js:69"}, "properties": {"repobilityId": "c036a45f4ca25894", "scanner": "scanner-primary", "fingerprint": "7f30dafddf2fd650", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b31427930b42b352", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/tut-inquiry/tutInquiryData.js:192"}, "properties": {"repobilityId": "f9a749b5c346f6a7", "scanner": "scanner-primary", "fingerprint": "b31427930b42b352", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81ee4427cbf22d93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/expeditionMapAssets.js:338"}, "properties": {"repobilityId": "75d01b19bc180298", "scanner": "scanner-primary", "fingerprint": "81ee4427cbf22d93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-667269efbe0cb7a7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition/rome/romeMapAssets.js:97"}, "properties": {"repobilityId": "f96ab4a6c97a0c32", "scanner": "scanner-primary", "fingerprint": "667269efbe0cb7a7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5143246ab660dcf2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeySecrets.test.js:5250"}, "properties": {"repobilityId": "5f75228785fbd3eb", "scanner": "scanner-primary", "fingerprint": "5143246ab660dcf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3b9cf818d02927e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyRenderAssets.js:285"}, "properties": {"repobilityId": "43d39591fe4ff63d", "scanner": "scanner-primary", "fingerprint": "b3b9cf818d02927e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b2e8ed6980205574", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyPropBlendOverrides.js:1"}, "properties": {"repobilityId": "b370bd3746f07c6d", "scanner": "scanner-primary", "fingerprint": "b2e8ed6980205574", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a49a5204da524e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyConstants.js:36"}, "properties": {"repobilityId": "47707b8461ac59c7", "scanner": "scanner-primary", "fingerprint": "4a49a5204da524e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-776df8a903309e85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyCollectibleSprites.js:92"}, "properties": {"repobilityId": "2691c3952231ca0f", "scanner": "scanner-primary", "fingerprint": "776df8a903309e85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6bc7af17352b6fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyPlayerWeaponSprites.js:43"}, "properties": {"repobilityId": "5d4e5ba4cf2daaf8", "scanner": "scanner-primary", "fingerprint": "f6bc7af17352b6fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-db5ca954be81b56b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBackgroundAssets.js:155"}, "properties": {"repobilityId": "a05cbdfdd2cba790", "scanner": "scanner-primary", "fingerprint": "db5ca954be81b56b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ca6497ed42dddbfb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/expedition-journey/journeyLevelData.js:67"}, "properties": {"repobilityId": "127c610d3ddc3e7c", "scanner": "scanner-primary", "fingerprint": "ca6497ed42dddbfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f203e41747437d6c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyBossSprites.js:239"}, "properties": {"repobilityId": "ac565e3984566270", "scanner": "scanner-primary", "fingerprint": "f203e41747437d6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e42b689d2b39b51c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyMarkerSprites.js:49"}, "properties": {"repobilityId": "6020866557ff6eee", "scanner": "scanner-primary", "fingerprint": "e42b689d2b39b51c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6adf583c4da0aa82", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/components/expedition-journey/journeyUtils.js:1653"}, "properties": {"repobilityId": "83d1fb2d810fa59f", "scanner": "scanner-primary", "fingerprint": "6adf583c4da0aa82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d6970f554853ac3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/journeyEnemySprites.js:415"}, "properties": {"repobilityId": "f4eae72fcc90bfc0", "scanner": "scanner-primary", "fingerprint": "0d6970f554853ac3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-605a87537f14b097", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeBossSprites.js:117"}, "properties": {"repobilityId": "ce7d61acc747cbf7", "scanner": "scanner-primary", "fingerprint": "605a87537f14b097", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b6773ac522fbeb4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/expedition-journey/rome/romeEnemySprites.js:97"}, "properties": {"repobilityId": "225c43db35d5087f", "scanner": "scanner-primary", "fingerprint": "4b6773ac522fbeb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "10bf6cd447a8ce60", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "ef872d78c5441eca", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "f770de031ec663a1", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-76a2f6818267a9a8", "level": "note", "message": {"text": "Near-duplicate function bodies in 8 places"}, "properties": {"repobilityId": "93a30f12d0b7cc07", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "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": "fd1f927da21811d9", "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": "5156a7a59f76c572", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "5dff34e051e98368", "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": "b43b30f022fe4c33", "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": "c2671f0bae057205", "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": "8879b6aa14447bb4", "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": "648bc46f3543c8c8", "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": "e3394d7af5616106", "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": "bf76df5b6d93a9c9", "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": "e22ae561231e6acf", "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": "e35db03ed17486ed", "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": "93357a108dacc451", "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": "89d419744af7fce0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}