{"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": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: scafa-assistant/mapraiders", "shortDescription": {"text": "Foundry mined blueprint gap alignment: scafa-assistant/mapraiders"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: scafa-assistant/mapraiders", "shortDescription": {"text": "Foundry mined schema ui api mismatch: scafa-assistant/mapraiders"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: scafa-assistant/mapraiders", "shortDescription": {"text": "Foundry mined docs only runtime fix: scafa-assistant/mapraiders"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "scanner-809260eb95a78132", "name": "Possibly dead Python function: generate_tablets", "shortDescription": {"text": "Possibly dead Python function: generate_tablets"}, "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-5c6b1e24bf89b414", "name": "Possibly dead Python function: repl_anchor", "shortDescription": {"text": "Possibly dead Python function: repl_anchor"}, "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-ff380c3d1be49277", "name": "Possibly dead Python function: add_avail", "shortDescription": {"text": "Possibly dead Python function: add_avail"}, "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-79f0a63540937bbc", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "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-6b91f0c9cafeeb7d", "name": "Possibly dead Python function: replace_pt_link", "shortDescription": {"text": "Possibly dead Python function: replace_pt_link"}, "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-3c16126f49a5bed4", "name": "Possibly dead Python function: replace_link", "shortDescription": {"text": "Possibly dead Python function: replace_link"}, "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-6864765b8f56fd09", "name": "Possibly dead Python function: replace_es_link", "shortDescription": {"text": "Possibly dead Python function: replace_es_link"}, "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-39a5d182df736de9", "name": "Possibly dead Python function: replace_link", "shortDescription": {"text": "Possibly dead Python function: replace_link"}, "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-bbfb8d948d29abbf", "name": "Possibly dead Python function: replace_zh_cn_link", "shortDescription": {"text": "Possibly dead Python function: replace_zh_cn_link"}, "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-d336cf867f127f3a", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "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-6bd7829aa7f1b8d3", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "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-7e899a67b128a4ed", "name": "Stray `console.log` in TS/JS \u2014 update-lang-sw.js:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 update-lang-sw.js:155"}, "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-d87666671e30a3b6", "name": "Stray `console.log` in TS/JS \u2014 mobile/generate-icons.js:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/generate-icons.js:93"}, "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-cde805c9ed360483", "name": "Stray `console.log` in TS/JS \u2014 mobile/generate-og-image.js:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/generate-og-image.js:161"}, "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-d529610e36dd5b3b", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/services/offlineQueue.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/offlineQueue.ts:46"}, "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-854b3ace29b1d394", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/services/notifications.ts:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/notifications.ts:125"}, "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-1fcc27b6befc957b", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/services/websocket.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/websocket.ts:42"}, "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-895fedb5294ec46a", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/services/web3auth.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/web3auth.ts:14"}, "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-bac4c4341500dae7", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/services/wsEventHandler.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/wsEventHandler.ts:45"}, "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-eb31ecfb4649e8a8", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/store/locationStore.ts:288", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/store/locationStore.ts:288"}, "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-394259dfddb0d600", "name": "Stray `console.log` in TS/JS \u2014 mobile/src/store/settingsStore.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/store/settingsStore.ts:67"}, "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-6d433fd817b51ce4", "name": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:328", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:328"}, "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-4a033535c41fde70", "name": "Stray `console.log` in TS/JS \u2014 server/src/config/redis.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/config/redis.ts:20"}, "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-2b3c3bce24bc90c1", "name": "Stray `console.log` in TS/JS \u2014 server/src/config/database.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/config/database.ts:45"}, "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-cbcfb9ac16011264", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/clanService.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/clanService.ts:27"}, "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-78595dea5856b92a", "name": "TODO/FIXME marker in shipping code \u2014 server/src/services/eventEngine.ts:310", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/eventEngine.ts:310"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbf74972dca5848b", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/eventEngine.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/eventEngine.ts:93"}, "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-e69196f7f1c4c96c", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/osmContextService.ts:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/osmContextService.ts:223"}, "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-f8ec0f6003f5e7bf", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/energyService.ts:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/energyService.ts:169"}, "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-d798907a49493326", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/notificationService.ts:160", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/notificationService.ts:160"}, "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-b617e731877ad727", "name": "TODO/FIXME marker in shipping code \u2014 server/src/services/aiVerification.ts:70", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/aiVerification.ts:70"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1104d03a915eb58", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/extractionService.ts:256", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/extractionService.ts:256"}, "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-68e191a6c34db9ff", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/claimEngine.ts:271", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/claimEngine.ts:271"}, "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-5c520a0bbb326a90", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/balanceService.ts:348", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/balanceService.ts:348"}, "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-e65c43930c834e24", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/pushService.ts:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/pushService.ts:25"}, "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-f43317c10e7e981f", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/wsService.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/wsService.ts:56"}, "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-564fa4c577356ee8", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/leaderboardService.ts:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/leaderboardService.ts:191"}, "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-8169d3ed751d00be", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/decayEngine.ts:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/decayEngine.ts:85"}, "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-eb6847c9c4d59cf2", "name": "TODO/FIXME marker in shipping code \u2014 server/src/services/hackEngine.ts:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/hackEngine.ts:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46f74f0dbd807339", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/moderationService.ts:346", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/moderationService.ts:346"}, "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-d74391de1f74b0d3", "name": "Stray `console.log` in TS/JS \u2014 server/src/services/seedQuestEngine.ts:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/seedQuestEngine.ts:133"}, "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-7308d2f5fb4532bd", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phase0Jobs.ts:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phase0Jobs.ts:75"}, "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-88d72d3acd86e259", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseDJobs.ts:176", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseDJobs.ts:176"}, "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-2328a64d81ce0379", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseBJobs.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseBJobs.ts:27"}, "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-5cab357e9b0b8d8d", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/decayCron.ts:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/decayCron.ts:45"}, "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-cc13d6d0932eb89c", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC1Jobs.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC1Jobs.ts:29"}, "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-7ae1f60211065a7d", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/clanFormation.ts:142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/clanFormation.ts:142"}, "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-7a93e54c07e53f1e", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseF1Jobs.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseF1Jobs.ts:33"}, "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-2836b8387c794680", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC2Jobs.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC2Jobs.ts: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-fc984a42a44a549a", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/leaderboardCron.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/leaderboardCron.ts:28"}, "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-3227c43b882b4352", "name": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseAJobs.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseAJobs.ts:26"}, "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-b69f45b2dcff8d24", "name": "Dockerfile runs as root: server/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: server/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7158aa1e38492c6", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fe4f095e880ba360", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:867", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:867"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e82a8546190a96e", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/it/index.html:684", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/it/index.html:684"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2647032fa0da374", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/id/index.html:863", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/id/index.html:863"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a42f479f971fa01", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/es-mx/index.html:713", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/es-mx/index.html:713"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef8849e33915dcf8", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ko/index.html:742", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ko/index.html:742"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-978c8b5a111f872f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-cn/index.html:727", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-cn/index.html:727"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebeb6a67785f93e0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ar/index.html:733", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ar/index.html:733"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eeeb315a8ef55df0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ja/index.html:739", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ja/index.html:739"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b5190b0194c0355", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/fr/index.html:686", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/fr/index.html:686"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8053e652631f05fe", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-tw/index.html:727", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-tw/index.html:727"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13ff5afff8bf73e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/en-in/index.html:863", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/en-in/index.html:863"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46a96d2921586c66", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/index.html:733", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/index.html:733"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28a3478381dc4eea", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/about.html:407", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/about.html:407"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f7b490e6df591a1", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/en/index.html:863", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/en/index.html:863"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-540a324dd59d82be", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/pt-br/index.html:729", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/pt-br/index.html:729"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67e42cfa18ee9431", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/pokemon-go.html:588", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/pokemon-go.html:588"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42bdbc66be67054a", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/ingress.html:586", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/ingress.html:586"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a201ceaf2084d0dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/geocaching.html:602", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/geocaching.html:602"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b430746964fc9f8", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/tr/index.html:715", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/tr/index.html:715"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3d3ed55b7558a44", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/ru/index.html:741", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ru/index.html:741"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5ca2a82e5dc1dd0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/quests.html:567", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/quests.html:567"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0c32533c0e6b9c5", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/defense.html:452", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/defense.html:452"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bddf3f5dbfceea9", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/social.html:502", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/social.html:502"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28458f9ae788fd4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/territorien.html:498", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/territorien.html:498"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce9dcbd41f9099ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/events.html:494", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/events.html:494"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98f03d2e4993e604", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/echos.html:449", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/echos.html:449"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8806c847896ca71f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/territorien.html:527", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/territorien.html:527"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f2215241617e6bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/clans.html:553", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/clans.html:553"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b34162082de76417", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/echos.html:521", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/echos.html:521"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d4448bfeda2ed12", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/verteidigungs-minispiele.html:517", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/verteidigungs-minispiele.html:517"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b76c4d6798edec2e", "name": "Possible secret in mobile/src/i18n/en/auth.ts", "shortDescription": {"text": "Possible secret in mobile/src/i18n/en/auth.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-10fa250a20e94619", "name": "Possible secret in mobile/src/i18n/de/auth.ts", "shortDescription": {"text": "Possible secret in mobile/src/i18n/de/auth.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "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": "appleboy/ssh-action@v1.2.0 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": "medium", "confidence": 1.0}}, {"id": "scanner-75ab3feb58d720cb", "name": "Very large file: docs/_build_phase1_ptbr.py (1708 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_ptbr.py (1708 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-a132067d44a98608", "name": "Very large file: docs/_build_phase1_zhtw.py (1751 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_zhtw.py (1751 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-eefaf28cabe144ef", "name": "Very large file: docs/_build_phase1_ko.py (1707 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_ko.py (1707 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-f64697118f70e9e1", "name": "Very large file: docs/_build_phase1_fr.py (1753 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_fr.py (1753 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-ae410dd595ba4e94", "name": "Very large file: docs/_build_phase1_id.py (1757 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_id.py (1757 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-161bb8ef5fbd06d8", "name": "Very large file: docs/_build_phase1_enin.py (1733 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_enin.py (1733 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-81cac37a1542d4fb", "name": "Very large file: docs/_apply_geo_tables.py (1139 lines)", "shortDescription": {"text": "Very large file: docs/_apply_geo_tables.py (1139 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-958e042d6787f12f", "name": "Very large file: docs/_build_phase1_de.py (1678 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_de.py (1678 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-f9840a8c21b12c2b", "name": "Very large file: docs/_build_phase1_tr.py (1689 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_tr.py (1689 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-f0d37373c6832e38", "name": "Very large file: docs/_apply_phaseE.py (912 lines)", "shortDescription": {"text": "Very large file: docs/_apply_phaseE.py (912 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-ed43a1b7d4ce86ee", "name": "Very large file: docs/_build_phase1_en.py (1725 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_en.py (1725 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8980dd789b00c3f9", "name": "Very large file: docs/_build_phase1_ja.py (1738 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_ja.py (1738 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-645765fe5b2fe5fc", "name": "Very large file: docs/_build_phase1_hi.py (1224 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_hi.py (1224 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-3098b8690b42ef6b", "name": "Very large file: docs/_build_phase1_ru.py (1752 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_ru.py (1752 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-58b05cd24d5a2d22", "name": "Very large file: docs/_build_phase1_esmx.py (1726 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_esmx.py (1726 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-6a26a7b6ef323353", "name": "Very large file: docs/_build_phase1_it.py (1731 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_it.py (1731 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4912623a0e6fa5b5", "name": "Very large file: docs/_build_phase1_ar.py (1735 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_ar.py (1735 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-460c55d258624527", "name": "Very large file: docs/_build_phase1_zhcn.py (1786 lines)", "shortDescription": {"text": "Very large file: docs/_build_phase1_zhcn.py (1786 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-dbcb5598929920cc", "name": "Very large file: mobile/src/screens/commander/CommanderMapScreen.tsx (2298 lines)", "shortDescription": {"text": "Very large file: mobile/src/screens/commander/CommanderMapScreen.tsx (2298 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-2fb9981c6ec36411", "name": "Very large file: mobile/src/screens/map/MapScreen.tsx (2236 lines)", "shortDescription": {"text": "Very large file: mobile/src/screens/map/MapScreen.tsx (2236 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-0cef827da50cfb9d", "name": "Very large file: web/src/components/CommanderView.tsx (2236 lines)", "shortDescription": {"text": "Very large file: web/src/components/CommanderView.tsx (2236 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-ed5782bf6f4dce27", "name": "Very large file: server/src/services/troopEngine.ts (2084 lines)", "shortDescription": {"text": "Very large file: server/src/services/troopEngine.ts (2084 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "1 test file(s) for 352 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45901f0f3ef87861", "name": "44 TODO/FIXME markers", "shortDescription": {"text": "44 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "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 567 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 186 placeholder/mock markers across 33 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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "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, tests, operator-readme. 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-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, tests, operator-readme. 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-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-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecb0d2c55ed6875d", "name": "Agent authority lacks a verifier contract: .claude/settings.local.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.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-9feaa2696e05b6e0", "name": "Commented-code block (7 lines) in docs/_apply_article_hreflang.py:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/_apply_article_hreflang.py: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-06c70110e66edf8e", "name": "Legacy-named symbol `footer_copy` in docs/_gen_category_pages.py:153", "shortDescription": {"text": "Legacy-named symbol `footer_copy` in docs/_gen_category_pages.py:153"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89a18deddaee1adc", "name": "Commented-code block (5 lines) in docs/_fix_enin_css.py:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/_fix_enin_css.py: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-213efc626a51585b", "name": "Commented-code block (5 lines) in docs/_apply_explainer_links.py:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/_apply_explainer_links.py: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-aed35c296e62f225", "name": "Commented-code block (12 lines) in mobile/src/polyfills.ts:6", "shortDescription": {"text": "Commented-code block (12 lines) in mobile/src/polyfills.ts:6"}, "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-6ee892480869758a", "name": "Commented-code block (5 lines) in mobile/src/i18n/index.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in mobile/src/i18n/index.ts:5"}, "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-73c3843e0eeb6ae1", "name": "Commented-code block (5 lines) in mobile/src/screens/commander/CommanderMapScreen.tsx:240", "shortDescription": {"text": "Commented-code block (5 lines) in mobile/src/screens/commander/CommanderMapScreen.tsx:240"}, "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-0e10574e2b442642", "name": "Commented-code block (6 lines) in mobile/src/screens/map/TerminalScreen.tsx:107", "shortDescription": {"text": "Commented-code block (6 lines) in mobile/src/screens/map/TerminalScreen.tsx:107"}, "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-95f436384b0b775f", "name": "Commented-code block (9 lines) in mobile/src/screens/map/MiniChessScreen.tsx:482", "shortDescription": {"text": "Commented-code block (9 lines) in mobile/src/screens/map/MiniChessScreen.tsx:482"}, "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-c739c6f68f9c28d5", "name": "Commented-code block (5 lines) in mobile/src/utils/commander.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in mobile/src/utils/commander.ts: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-2acf143ef915a727", "name": "Commented-code block (5 lines) in mobile/src/utils/mapStyles.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in mobile/src/utils/mapStyles.ts:4"}, "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-b52884f830904bb8", "name": "Commented-code block (5 lines) in mobile/src/utils/nightMode.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in mobile/src/utils/nightMode.ts: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-ef95740160f5356a", "name": "Commented-code block (6 lines) in mobile/src/services/sensorFusion.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in mobile/src/services/sensorFusion.ts: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-8bf9d80dbc548131", "name": "Commented-code block (6 lines) in mobile/src/services/websocket.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in mobile/src/services/websocket.ts: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-549b149ff3cde9c5", "name": "Commented-code block (5 lines) in web/src/theme.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/theme.ts: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-bce74b0c74368cc3", "name": "Commented-code block (5 lines) in web/src/App.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/App.tsx: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-2d8d23fc24112fd7", "name": "Commented-code block (5 lines) in web/src/api/buildingErrors.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/api/buildingErrors.ts: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-8a0c715a4fe0b418", "name": "Commented-code block (7 lines) in web/src/api/client.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in web/src/api/client.ts: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-0d5ab3694caeb3a5", "name": "Commented-code block (6 lines) in web/src/components/MyTerritoriesPanel.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/src/components/MyTerritoriesPanel.tsx: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-71bb00700ea8faee", "name": "Commented-code block (5 lines) in web/src/components/ResourceHud.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/components/ResourceHud.tsx: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-f5937eed6d5795eb", "name": "Commented-code block (10 lines) in web/src/components/CommanderView.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in web/src/components/CommanderView.tsx:4"}, "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-40283837798b3507", "name": "Commented-code block (6 lines) in web/src/components/RunnerModal.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in web/src/components/RunnerModal.tsx:4"}, "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-90b172a38d7984ea", "name": "Commented-code block (5 lines) in web/src/components/WalkToClaim.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/components/WalkToClaim.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1bed72b44b6c1ae7", "name": "Commented-code block (7 lines) in web/src/components/TerritoryPanel.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in web/src/components/TerritoryPanel.tsx: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-01daa6a536f12594", "name": "Commented-code block (7 lines) in web/src/components/BattleReplayModal.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in web/src/components/BattleReplayModal.tsx:4"}, "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-efcf09924e91ba2c", "name": "Commented-code block (5 lines) in web/src/store/resourceStore.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/src/store/resourceStore.ts: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-04f9e09018177b39", "name": "Commented-code block (6 lines) in web/src/store/terminalStore.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/src/store/terminalStore.ts: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-86aa5a7572b63238", "name": "Commented-code block (6 lines) in web/src/store/mapStore.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in web/src/store/mapStore.ts: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-7c429514067216cd", "name": "Commented-code block (6 lines) in server/src/index.ts:82", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/index.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0150fdeb81275ac0", "name": "Commented-code block (5 lines) in server/src/config/constants.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/config/constants.ts: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-8556d3ab16ce582c", "name": "Commented-code block (6 lines) in server/src/utils/geo.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/utils/geo.ts: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-99abb2210f8a0096", "name": "Commented-code block (5 lines) in server/src/utils/polygon.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/utils/polygon.ts: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-4b2c5d2661a68f68", "name": "Commented-code block (7 lines) in server/src/routes/territories.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/territories.ts: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-d6714b232de0e45b", "name": "Commented-code block (9 lines) in server/src/routes/challenges.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/routes/challenges.ts: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-38037ce96892edab", "name": "Commented-code block (7 lines) in server/src/routes/auth.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/auth.ts: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-93dcd808810cfae7", "name": "Commented-code block (5 lines) in server/src/routes/commander.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/commander.ts: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-d06ec5dd82eff21f", "name": "Commented-code block (6 lines) in server/src/routes/traps.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/routes/traps.ts: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-45bb262575a04732", "name": "Commented-code block (7 lines) in server/src/routes/pets.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/pets.ts: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-76ba4392db34b931", "name": "Commented-code block (7 lines) in server/src/routes/defenses.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/defenses.ts: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-b2c49febb8a045a1", "name": "Commented-code block (5 lines) in server/src/routes/pve.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/pve.ts:6"}, "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-9354c779bcbfaad7", "name": "Commented-code block (9 lines) in server/src/routes/users.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/routes/users.ts: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-8c2705ea44e2346f", "name": "Commented-code block (5 lines) in server/src/routes/social.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/social.ts: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-5ce2467892f79b22", "name": "Commented-code block (6 lines) in server/src/routes/aliases.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/routes/aliases.ts: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-9faa211a641b03b0", "name": "Commented-code block (6 lines) in server/src/routes/notifications.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/routes/notifications.ts: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-a46377563fb7efad", "name": "Commented-code block (6 lines) in server/src/routes/invites.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/routes/invites.ts: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-071f51764cd47597", "name": "Commented-code block (11 lines) in server/src/routes/meetups.ts:1", "shortDescription": {"text": "Commented-code block (11 lines) in server/src/routes/meetups.ts: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-8b9087c730aedff1", "name": "Commented-code block (9 lines) in server/src/routes/quests.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/routes/quests.ts: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-66d8228bdf53b23a", "name": "Commented-code block (7 lines) in server/src/routes/silentZones.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/silentZones.ts: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-09e0886b603abe0c", "name": "Commented-code block (5 lines) in server/src/routes/places.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/places.ts: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-f6be89cedb59d5ca", "name": "Commented-code block (7 lines) in server/src/routes/echos.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/echos.ts: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-bc4f9327247e0aad", "name": "Commented-code block (5 lines) in server/src/routes/leaderboards.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/leaderboards.ts: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-89552123cb625252", "name": "Commented-code block (11 lines) in server/src/routes/duels.ts:1", "shortDescription": {"text": "Commented-code block (11 lines) in server/src/routes/duels.ts: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-9b553221db037c4d", "name": "Commented-code block (5 lines) in server/src/routes/buildings.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/buildings.ts: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-67a734ef9e6355c8", "name": "Commented-code block (8 lines) in server/src/routes/races.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in server/src/routes/races.ts: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-87dad0086938866f", "name": "Commented-code block (5 lines) in server/src/routes/routes.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/routes.ts: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-293b2294f565eac0", "name": "Commented-code block (5 lines) in server/src/routes/terminals.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/terminals.ts: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-85cdf9ab6863a11e", "name": "Commented-code block (17 lines) in server/src/routes/clans.ts:1", "shortDescription": {"text": "Commented-code block (17 lines) in server/src/routes/clans.ts: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-debcbb3a52ebc320", "name": "Commented-code block (6 lines) in server/src/routes/bounties.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/routes/bounties.ts: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-58fad273198a318c", "name": "Commented-code block (5 lines) in server/src/routes/friends.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/friends.ts: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-1fda2990d7f0cc60", "name": "Commented-code block (8 lines) in server/src/routes/events.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in server/src/routes/events.ts: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-590c6a0aa74bd04a", "name": "Commented-code block (5 lines) in server/src/routes/resources.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/resources.ts:5"}, "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-9bee339124c88d4f", "name": "Commented-code block (9 lines) in server/src/routes/travel.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/routes/travel.ts: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-a82b1a565962abfd", "name": "Commented-code block (7 lines) in server/src/routes/artifacts.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/routes/artifacts.ts: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-d39d71ee1ea4204d", "name": "Commented-code block (5 lines) in server/src/routes/features.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/routes/features.ts: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-25fb731d82c187ca", "name": "Commented-code block (8 lines) in server/src/routes/turnGames.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in server/src/routes/turnGames.ts: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-4695860fffd5c786", "name": "Commented-code block (5 lines) in server/src/services/clanService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/clanService.ts: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-8796e9bec03de78c", "name": "Commented-code block (6 lines) in server/src/services/eventEngine.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/eventEngine.ts: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-92b682bd6f40103e", "name": "Commented-code block (5 lines) in server/src/services/energyService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/energyService.ts: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-4ba65c6067bf1eff", "name": "Commented-code block (6 lines) in server/src/services/trapService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/trapService.ts: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-98f0e3d150e3242b", "name": "Commented-code block (6 lines) in server/src/services/raceEngine.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/raceEngine.ts: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-db6c914a531b9007", "name": "Commented-code block (5 lines) in server/src/services/weatherService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/weatherService.ts: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-f3f8ed5b64f8ccc2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/services/weatherService.ts:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/services/weatherService.ts:96"}, "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-5231d9ec903e4109", "name": "Commented-code block (14 lines) in server/src/services/terminalEngine.ts:1", "shortDescription": {"text": "Commented-code block (14 lines) in server/src/services/terminalEngine.ts: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-39c7e6dc6a842dd0", "name": "Commented-code block (9 lines) in server/src/services/visionService.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/services/visionService.ts:6"}, "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-e0278d4b5f0e73ba", "name": "Commented-code block (5 lines) in server/src/services/inviteService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/inviteService.ts: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-7d684af4462674b6", "name": "Commented-code block (5 lines) in server/src/services/duelEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/duelEngine.ts: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-9f8fd83f834539c8", "name": "Commented-code block (5 lines) in server/src/services/troopEngine.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/troopEngine.ts:5"}, "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-947effcf92b260b8", "name": "Commented-code block (10 lines) in server/src/services/airstrikeService.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in server/src/services/airstrikeService.ts: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-808ec3e6a43e904e", "name": "Commented-code block (5 lines) in server/src/services/notificationService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/notificationService.ts: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-db02068806d68ecc", "name": "Commented-code block (5 lines) in server/src/services/classDetection.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/classDetection.ts: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-6fc5ba629b81e161", "name": "Commented-code block (5 lines) in server/src/services/placeMemoryService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/placeMemoryService.ts: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-66fd1d0996dfb114", "name": "Commented-code block (7 lines) in server/src/services/defenseGameEngine.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/services/defenseGameEngine.ts: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-03afcbff20243e45", "name": "Commented-code block (5 lines) in server/src/services/questEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/questEngine.ts: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-80b64cb68bd1d257", "name": "Commented-code block (6 lines) in server/src/services/aiGeneralService.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/aiGeneralService.ts:4"}, "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-6ac867d468f2d141", "name": "Commented-code block (6 lines) in server/src/services/aiVerification.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/aiVerification.ts: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-cc615a30a9ae256a", "name": "Commented-code block (5 lines) in server/src/services/silentZoneService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/silentZoneService.ts: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-04c4e92b21134cbe", "name": "Commented-code block (6 lines) in server/src/services/extractionService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/extractionService.ts: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-14f7d5a4f10378db", "name": "Commented-code block (5 lines) in server/src/services/claimEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/claimEngine.ts: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-85bde80f69df1f72", "name": "Commented-code block (6 lines) in server/src/services/balanceService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/balanceService.ts: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-377f9bcce5ee7ca5", "name": "Commented-code block (5 lines) in server/src/services/pushService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/pushService.ts: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-05fb56ca96539ddb", "name": "Commented-code block (6 lines) in server/src/services/wsService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/wsService.ts: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-eb68b7b7a5abd6e4", "name": "Commented-code block (9 lines) in server/src/services/h3Service.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/services/h3Service.ts: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-421b97ed83a4cd54", "name": "Commented-code block (5 lines) in server/src/services/bountyService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/bountyService.ts: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-ffcfe0d40aaf1eea", "name": "Commented-code block (6 lines) in server/src/services/resourceService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/resourceService.ts: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-41a0c94b9e7de959", "name": "Commented-code block (6 lines) in server/src/services/resonanceService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/resonanceService.ts: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-8031d66dd1b04923", "name": "Commented-code block (5 lines) in server/src/services/challengeEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/challengeEngine.ts: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-cd44c683f0788dae", "name": "Commented-code block (5 lines) in server/src/services/llmProviders.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/llmProviders.ts:4"}, "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-748b8e886650e016", "name": "Commented-code block (5 lines) in server/src/services/leaderboardService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/leaderboardService.ts: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-3e4af5466464e7cf", "name": "Commented-code block (5 lines) in server/src/services/artifactService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/artifactService.ts: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-4dafb1d10d98bd97", "name": "Commented-code block (6 lines) in server/src/services/turnGameEngine.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/turnGameEngine.ts: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-60f0554ae2108ac6", "name": "Commented-code block (5 lines) in server/src/services/decayEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/decayEngine.ts: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-8ae1ad9259f62df8", "name": "Commented-code block (5 lines) in server/src/services/friendService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/friendService.ts: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-a0b0c7270acab702", "name": "Commented-code block (9 lines) in server/src/services/hackEngine.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/services/hackEngine.ts: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-62eb620d946754c6", "name": "Commented-code block (5 lines) in server/src/services/antiCheat.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/antiCheat.ts: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-29e328cf1c2c633b", "name": "Commented-code block (5 lines) in server/src/services/aliasService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/aliasService.ts: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-fa1dbf896af9d280", "name": "Commented-code block (5 lines) in server/src/services/battleEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/battleEngine.ts: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-41d0e4b6cbcaece2", "name": "Commented-code block (9 lines) in server/src/services/pveSpawnEngine.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in server/src/services/pveSpawnEngine.ts: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-dafc1c2b42b6d00f", "name": "Commented-code block (5 lines) in server/src/services/progressionEngine.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/progressionEngine.ts: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-ce1207246a4253e6", "name": "Commented-code block (12 lines) in server/src/services/aiSimEngine.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in server/src/services/aiSimEngine.ts:4"}, "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-d023c2fa41edfc5e", "name": "Commented-code block (5 lines) in server/src/services/moderationService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/moderationService.ts: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-3f6f0e8962f74c4e", "name": "Commented-code block (6 lines) in server/src/services/seedQuestEngine.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/seedQuestEngine.ts: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-33f050da7a6b03c7", "name": "Commented-code block (6 lines) in server/src/services/meetupService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/meetupService.ts: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-4a83994fce04e273", "name": "Commented-code block (5 lines) in server/src/services/itemService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/itemService.ts: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-2bfd4c4cc3470fc9", "name": "Commented-code block (7 lines) in server/src/services/buildingEngine.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/services/buildingEngine.ts: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-abbc4e9edde5a2ee", "name": "Commented-code block (6 lines) in server/src/services/featureService.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/services/featureService.ts: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-005568344cf35a37", "name": "Commented-code block (5 lines) in server/src/services/manualClanService.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/services/manualClanService.ts: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-e4e279a218896834", "name": "Commented-code block (5 lines) in server/src/jobs/phase0Jobs.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/jobs/phase0Jobs.ts: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-9551201d0c6f4ba2", "name": "Commented-code block (10 lines) in server/src/jobs/phaseDJobs.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in server/src/jobs/phaseDJobs.ts:4"}, "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-9831a44e77fef7a3", "name": "Commented-code block (6 lines) in server/src/jobs/phaseBJobs.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseBJobs.ts: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-f1a444670abe7732", "name": "Commented-code block (5 lines) in server/src/jobs/decayCron.ts:265", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/jobs/decayCron.ts:265"}, "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-d3da573920167f8a", "name": "Commented-code block (7 lines) in server/src/jobs/phaseC1Jobs.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in server/src/jobs/phaseC1Jobs.ts:6"}, "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-4d0c364f7dbe8073", "name": "Commented-code block (5 lines) in server/src/jobs/clanFormation.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/jobs/clanFormation.ts: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-2d8fd72e19f66dbb", "name": "Commented-code block (6 lines) in server/src/jobs/phaseF1Jobs.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseF1Jobs.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6329c02db52991b1", "name": "Commented-code block (5 lines) in server/src/jobs/titleCheck.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/jobs/titleCheck.ts: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-03df2a5bf5c6971b", "name": "Commented-code block (8 lines) in server/src/jobs/phaseC2Jobs.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in server/src/jobs/phaseC2Jobs.ts:4"}, "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-6a6ccd30b9eb4fe4", "name": "Commented-code block (5 lines) in server/src/jobs/leaderboardCron.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in server/src/jobs/leaderboardCron.ts: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-aa9fe4d537478a8e", "name": "Commented-code block (6 lines) in server/src/jobs/phaseAJobs.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseAJobs.ts: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-d0b17c8c07a7421d", "name": "8 env vars used in code but missing from .env.example", "shortDescription": {"text": "8 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `DATABASE_SSL`, `DEEPSEEK_API_KEY`, `DEV`, `GAME_HMAC_SECRET`, `GEMINI_API_KEY`, `OPENROUTER_API_KEY`, `VITE_API_URL`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c54c6fb8e364daaa", "name": "Near-duplicate function bodies in 16 places", "shortDescription": {"text": "Near-duplicate function bodies in 16 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/_build_phase1_ptbr.py:lang_switcher_html, docs/_build_phase1_zhtw.py:lang_switcher_html, docs/_build_phase1_ko.py:lang_switcher_html, docs/_build_phase1_fr.py:lang_switcher_html\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:\ndocs/_build_phase1_ptbr.py:testers_section_html, docs/_build_phase1_ko.py:testers_section_html, docs/_build_phase1_fr.py:testers_section_html, docs/_build_phase1_id.py:testers_section_html\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-ee53e8e0c58609d8", "name": "Near-duplicate function bodies in 15 places", "shortDescription": {"text": "Near-duplicate function bodies in 15 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/_build_phase1_ptbr.py:footer_html, docs/_build_phase1_zhtw.py:footer_html, docs/_build_phase1_fr.py:footer_html, docs/_build_phase1_id.py:footer_html\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-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/_build_phase1_ptbr.py:base_css, docs/_build_phase1_fr.py:base_css, docs/_build_phase1_id.py:base_css, docs/_build_phase1_enin.py:base_css\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:\ndocs/_build_phase1_ptbr.py:build_review_obj, docs/_build_phase1_fr.py:build_review_obj, docs/_build_phase1_id.py:build_review_obj, docs/_build_phase1_esmx.py:build_review_obj\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-122053f21232d80c", "name": "Near-duplicate function bodies in 14 places", "shortDescription": {"text": "Near-duplicate function bodies in 14 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/_build_phase1_ptbr.py:render_section_html, docs/_build_phase1_zhtw.py:render_section_html, docs/_build_phase1_ko.py:render_section_html, docs/_build_phase1_fr.py:render_section_html\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:\ndocs/_build_phase1_zhtw.py:testers_section_html, docs/_build_phase1_ja.py:testers_section_html, docs/_build_phase1_ar.py:testers_section_html, docs/_build_phase1_zhcn.py:testers_section_html\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:\ndocs/_build_phase1_zhtw.py:sharing_block_html, docs/_build_phase1_ja.py:sharing_block_html\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:\ndocs/_build_phase1_zhtw.py:safe_print, docs/_build_phase1_ja.py:safe_print, docs/_build_phase1_zhcn.py:safe_print\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:\ndocs/_apply_review_translations.py:process_file, docs/_apply_hreflang_v2.py:process_file, docs/_apply_founder_reviews.py:process_file, docs/_apply_sharing_buttons.py:process_file\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-52b1fab7c8a34b2c", "name": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?id_token=${encodeURIComponent(idToken)} (server/src/routes/a", "shortDescription": {"text": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?id_token=${encodeURIComponent(idToken)} (server/src/routes/auth.ts:228)"}, "fullDescription": {"text": "`server/src/routes/auth.ts:228` calls `GET https://oauth2.googleapis.com/tokeninfo?id_token=${encodeURIComponent(idToken)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: axios\nNormalized path used for matching: `/https:/oauth2.googleapis.com/tokeninfo`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8292c0931391749a", "name": "Unused endpoint: POST /auth/register", "shortDescription": {"text": "Unused endpoint: POST /auth/register"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /auth/register` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8fdbacfe9430a6ed", "name": "Unused endpoint: POST /auth/login", "shortDescription": {"text": "Unused endpoint: POST /auth/login"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /auth/login` 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-b36892106ecdc9aa", "name": "Unused endpoint: POST /auth/refresh", "shortDescription": {"text": "Unused endpoint: POST /auth/refresh"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /auth/refresh` 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-49ff4b7b1540cab2", "name": "Unused endpoint: POST /auth/web3", "shortDescription": {"text": "Unused endpoint: POST /auth/web3"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /auth/web3` 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-034336dc074efeb4", "name": "Unused endpoint: POST /routes", "shortDescription": {"text": "Unused endpoint: POST /routes"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /routes` 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-597ff15849648573", "name": "Unused endpoint: GET /routes/me", "shortDescription": {"text": "Unused endpoint: GET /routes/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /routes/me` 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-f6d992665a024a6a", "name": "Unused endpoint: GET /territories", "shortDescription": {"text": "Unused endpoint: GET /territories"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /territories` 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-ec192c1be3803f96", "name": "Unused endpoint: GET /territories/me", "shortDescription": {"text": "Unused endpoint: GET /territories/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /territories/me` 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-401fb6d86d7cadb0", "name": "Unused endpoint: GET /territories/mine", "shortDescription": {"text": "Unused endpoint: GET /territories/mine"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /territories/mine` 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-1d1bd3b61828ece5", "name": "Unused endpoint: GET /quests", "shortDescription": {"text": "Unused endpoint: GET /quests"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /quests` 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-9b53052c4da067bc", "name": "Unused endpoint: POST /quests", "shortDescription": {"text": "Unused endpoint: POST /quests"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /quests` 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-03cdcaeb89af477b", "name": "Unused endpoint: GET /echos", "shortDescription": {"text": "Unused endpoint: GET /echos"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /echos` 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-4d6193421dd2bb20", "name": "Unused endpoint: POST /echos", "shortDescription": {"text": "Unused endpoint: POST /echos"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /echos` 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-d6daae716a206915", "name": "Unused endpoint: GET /challenges", "shortDescription": {"text": "Unused endpoint: GET /challenges"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /challenges` 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-053a9ae6a5e2e732", "name": "Unused endpoint: POST /challenges", "shortDescription": {"text": "Unused endpoint: POST /challenges"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /challenges` 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-f94d917cac79f339", "name": "Unused endpoint: GET /pets/me", "shortDescription": {"text": "Unused endpoint: GET /pets/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /pets/me` 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-aa37c7cfffb73d9e", "name": "Unused endpoint: POST /pets", "shortDescription": {"text": "Unused endpoint: POST /pets"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /pets` 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-11c089878e834f1c", "name": "Unused endpoint: GET /travel/routes", "shortDescription": {"text": "Unused endpoint: GET /travel/routes"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /travel/routes` 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-9bbb8e7497f32081", "name": "Unused endpoint: POST /travel/routes", "shortDescription": {"text": "Unused endpoint: POST /travel/routes"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /travel/routes` 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-a8b657222dd85be2", "name": "Unused endpoint: GET /users/me", "shortDescription": {"text": "Unused endpoint: GET /users/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /users/me` 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-76b563f141ae1f12", "name": "Unused endpoint: PUT /users/me/settings", "shortDescription": {"text": "Unused endpoint: PUT /users/me/settings"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/settings` 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-29f9d7036225389b", "name": "Unused endpoint: GET /users/me/export", "shortDescription": {"text": "Unused endpoint: GET /users/me/export"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /users/me/export` 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-a69d2c55f1155d84", "name": "Unused endpoint: DELETE /users/me", "shortDescription": {"text": "Unused endpoint: DELETE /users/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `DELETE /users/me` 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-4b789cfa4da2e49c", "name": "Unused endpoint: PUT /users/me/push-token", "shortDescription": {"text": "Unused endpoint: PUT /users/me/push-token"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/push-token` 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-97618265a7c14b0b", "name": "Unused endpoint: PUT /users/me/home-zone", "shortDescription": {"text": "Unused endpoint: PUT /users/me/home-zone"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/home-zone` 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-414b208d01deebe9", "name": "Unused endpoint: DELETE /users/me/home-zone", "shortDescription": {"text": "Unused endpoint: DELETE /users/me/home-zone"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `DELETE /users/me/home-zone` 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-60bc5c330890659a", "name": "Unused endpoint: PUT /users/me/avatar", "shortDescription": {"text": "Unused endpoint: PUT /users/me/avatar"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/avatar` 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-fe5203e9cea6e026", "name": "Unused endpoint: PUT /users/me/username", "shortDescription": {"text": "Unused endpoint: PUT /users/me/username"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/username` 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-d90e2d21f5c1bbcd", "name": "Unused endpoint: PUT /users/me/color", "shortDescription": {"text": "Unused endpoint: PUT /users/me/color"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /users/me/color` 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-d69ac1ea32e80b75", "name": "Unused endpoint: GET /clans/me", "shortDescription": {"text": "Unused endpoint: GET /clans/me"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /clans/me` 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-f80eaf875358e8f3", "name": "Unused endpoint: GET /clans/districts/scores", "shortDescription": {"text": "Unused endpoint: GET /clans/districts/scores"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /clans/districts/scores` 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-1d7cdd2c70bd40b2", "name": "Unused endpoint: POST /clans", "shortDescription": {"text": "Unused endpoint: POST /clans"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /clans` 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-26b8c17c21d83bb4", "name": "Unused endpoint: GET /clans/search", "shortDescription": {"text": "Unused endpoint: GET /clans/search"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /clans/search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cd1c70fddde9384", "name": "Unused endpoint: GET /friends", "shortDescription": {"text": "Unused endpoint: GET /friends"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /friends` 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-1452305cdc80d5d8", "name": "Unused endpoint: POST /friends/request", "shortDescription": {"text": "Unused endpoint: POST /friends/request"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /friends/request` 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-7d827b0b30c3804c", "name": "Unused endpoint: GET /friends/requests", "shortDescription": {"text": "Unused endpoint: GET /friends/requests"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /friends/requests` 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-c6362290572cf496", "name": "Unused endpoint: GET /friends/requests/sent", "shortDescription": {"text": "Unused endpoint: GET /friends/requests/sent"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /friends/requests/sent` 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-460e95df8a9215b3", "name": "Unused endpoint: POST /friends/block", "shortDescription": {"text": "Unused endpoint: POST /friends/block"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /friends/block` 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-bc955e9dd0b64e97", "name": "Unused endpoint: GET /friends/blocked", "shortDescription": {"text": "Unused endpoint: GET /friends/blocked"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /friends/blocked` 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-a1cf380937b61112", "name": "Unused endpoint: GET /players/search", "shortDescription": {"text": "Unused endpoint: GET /players/search"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /players/search` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3af64e805d88ef35", "name": "Unused endpoint: GET /notifications", "shortDescription": {"text": "Unused endpoint: GET /notifications"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /notifications` 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-6313bb585fe36914", "name": "Unused endpoint: PUT /notifications/read", "shortDescription": {"text": "Unused endpoint: PUT /notifications/read"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /notifications/read` 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-f968c256db279a87", "name": "Unused endpoint: PUT /notifications/settings", "shortDescription": {"text": "Unused endpoint: PUT /notifications/settings"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `PUT /notifications/settings` 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-6ad71d781550edea", "name": "Unused endpoint: GET /artifacts", "shortDescription": {"text": "Unused endpoint: GET /artifacts"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /artifacts` 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-6a3b6c11a22c7949", "name": "Unused endpoint: POST /artifacts", "shortDescription": {"text": "Unused endpoint: POST /artifacts"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /artifacts` 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-4fe0abddff7fa049", "name": "Unused endpoint: POST /social/reports", "shortDescription": {"text": "Unused endpoint: POST /social/reports"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /social/reports` 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-deceb26a28050f3a", "name": "Unused endpoint: GET /social/feed", "shortDescription": {"text": "Unused endpoint: GET /social/feed"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /social/feed` 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-0a7ee251196f605a", "name": "Unused endpoint: GET /weather", "shortDescription": {"text": "Unused endpoint: GET /weather"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /weather` 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-fbd790b94ffa7e9b", "name": "Unused endpoint: GET /silent-zones", "shortDescription": {"text": "Unused endpoint: GET /silent-zones"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `GET /silent-zones` 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-183023fe58eb26cd", "name": "Unused endpoint: POST /silent-zones", "shortDescription": {"text": "Unused endpoint: POST /silent-zones"}, "fullDescription": {"text": "`mobile/src/services/api.ts` declares `POST /silent-zones` 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/19043"}, "properties": {"repository": "scafa-assistant/mapraiders", "repoUrl": "https://github.com/scafa-assistant/mapraiders", "branch": "main"}, "results": [{"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: scafa-assistant/mapraiders"}, "properties": {"repobilityId": 403574, "scanner": "foundry_dataset", "fingerprint": "585f9fd78e784f115270865a2480f7d7f7fae2947e8e3530c0735fe526cab572", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "docs_or_claims": 100, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 142, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 100, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 115, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 100, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "scafa-assistant/mapraiders#1", "issue_number": "1", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "scafa-assistant/mapraiders", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-25114db46885af6a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 400}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 100, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 100, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/scafa-assistant/mapraiders", "source_id": "graph-query-motif_query-ac6dd3cc3a4f19b9", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "scafa-assistant/mapraiders", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: scafa-assistant/mapraiders"}, "properties": {"repobilityId": 411114, "scanner": "foundry_dataset", "fingerprint": "e8533f74c3d8e2a4b91abf0107cbaa8c19b17fd0b3bcf9eb39ce81b1bb810aa4", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"bug_fix": 2, "docs_or_claims": 100, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 142, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 100, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 115, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 100, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "scafa-assistant/mapraiders#1", "issue_number": "1", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "scafa-assistant/mapraiders", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-99531ccfe21c71bf", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 400}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 100, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 100, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/scafa-assistant/mapraiders", "source_id": "graph-query-motif_query-3a54768e6e83a346", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "scafa-assistant/mapraiders", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: scafa-assistant/mapraiders"}, "properties": {"repobilityId": 406309, "scanner": "foundry_dataset", "fingerprint": "00cf90a866e8d0b8d7561a8130e4f986b1e056547c8da6e97027dcc58e3d8146", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"bug_fix": 2, "docs_or_claims": 100, "verification_or_tests": 1, "data_schema_persistence": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 142, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 100, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 3, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 115, "node_types": {"repo": 1, "commit": 3, "thread": 1, "comment": 1, "pr_file": 100, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "scafa-assistant/mapraiders#1", "issue_number": "1", "quality_tiers": {"assumption_check": 1, "weak_supervision": 3}, "repo_full_name": "scafa-assistant/mapraiders", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-30f60c6e4e5e348a", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"docs_or_claims": 400}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: supported_by_verification_signal\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: scafa-assistant/mapraiders\nThread: scafa-assistant/mapraiders#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: scafa-assistant/mapraiders#1\nRepo: scafa-assistant/mapraiders\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 115\nEdges: 142\nNode types: {'pr_file': 100, 'link_quality': 4, 'commit': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 100, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 4, 'comment_chain_links_commit': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'docs_or_claims': 100, 'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'weak_supervision': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/scafa-assistant/mapraiders", "source_id": "graph-query-motif_query-65107276c9ecc5f7", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "scafa-assistant/mapraiders", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "scanner-809260eb95a78132", "level": "note", "message": {"text": "Possibly dead Python function: generate_tablets"}, "properties": {"repobilityId": "32c48555a08dc189", "scanner": "scanner-primary", "fingerprint": "809260eb95a78132", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "store-assets/generate_screenshots.py:75"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5c6b1e24bf89b414", "level": "note", "message": {"text": "Possibly dead Python function: repl_anchor"}, "properties": {"repobilityId": "d01e66dcad22b573", "scanner": "scanner-primary", "fingerprint": "5c6b1e24bf89b414", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_coming_soon.py:77"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff380c3d1be49277", "level": "note", "message": {"text": "Possibly dead Python function: add_avail"}, "properties": {"repobilityId": "cebec756beca6054", "scanner": "scanner-primary", "fingerprint": "ff380c3d1be49277", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_coming_soon.py:107"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79f0a63540937bbc", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "79f0a63540937bbc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_fix_dead_links.py:233"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6b91f0c9cafeeb7d", "level": "note", "message": {"text": "Possibly dead Python function: replace_pt_link"}, "properties": {"repobilityId": "a82d961077dc8add", "scanner": "scanner-primary", "fingerprint": "6b91f0c9cafeeb7d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_pt_split.py:92"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c16126f49a5bed4", "level": "note", "message": {"text": "Possibly dead Python function: replace_link"}, "properties": {"repobilityId": "93543400bda676ca", "scanner": "scanner-primary", "fingerprint": "3c16126f49a5bed4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_pt_split.py:237"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6864765b8f56fd09", "level": "note", "message": {"text": "Possibly dead Python function: replace_es_link"}, "properties": {"repobilityId": "76c0459e3892e1a7", "scanner": "scanner-primary", "fingerprint": "6864765b8f56fd09", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_es_split.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-39a5d182df736de9", "level": "note", "message": {"text": "Possibly dead Python function: replace_link"}, "properties": {"repobilityId": "93543400bda676ca", "scanner": "scanner-primary", "fingerprint": "39a5d182df736de9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_es_split.py:168"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bbfb8d948d29abbf", "level": "note", "message": {"text": "Possibly dead Python function: replace_zh_cn_link"}, "properties": {"repobilityId": "9a884505da5d97bc", "scanner": "scanner-primary", "fingerprint": "bbfb8d948d29abbf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_zh_split.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d336cf867f127f3a", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "d336cf867f127f3a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_remove_fake_reviews.py:37"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6bd7829aa7f1b8d3", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "6bd7829aa7f1b8d3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/_apply_internal_links.py:224"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e899a67b128a4ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 update-lang-sw.js:155"}, "properties": {"repobilityId": "af6d8fdc3d669fac", "scanner": "scanner-primary", "fingerprint": "7e899a67b128a4ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d87666671e30a3b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/generate-icons.js:93"}, "properties": {"repobilityId": "73945b20a0d46ce9", "scanner": "scanner-primary", "fingerprint": "d87666671e30a3b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cde805c9ed360483", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/generate-og-image.js:161"}, "properties": {"repobilityId": "73d1d06b4aeecaf1", "scanner": "scanner-primary", "fingerprint": "cde805c9ed360483", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d529610e36dd5b3b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/offlineQueue.ts:46"}, "properties": {"repobilityId": "7db47724a45be43d", "scanner": "scanner-primary", "fingerprint": "d529610e36dd5b3b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-854b3ace29b1d394", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/notifications.ts:125"}, "properties": {"repobilityId": "6e68bc1c4491b5bc", "scanner": "scanner-primary", "fingerprint": "854b3ace29b1d394", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fcc27b6befc957b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/websocket.ts:42"}, "properties": {"repobilityId": "a8827c3c45c64fea", "scanner": "scanner-primary", "fingerprint": "1fcc27b6befc957b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-895fedb5294ec46a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/web3auth.ts:14"}, "properties": {"repobilityId": "857b1f29c311d63e", "scanner": "scanner-primary", "fingerprint": "895fedb5294ec46a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bac4c4341500dae7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/services/wsEventHandler.ts:45"}, "properties": {"repobilityId": "4a40bb8a4353beee", "scanner": "scanner-primary", "fingerprint": "bac4c4341500dae7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb31ecfb4649e8a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/store/locationStore.ts:288"}, "properties": {"repobilityId": "9fedb983a899aebc", "scanner": "scanner-primary", "fingerprint": "eb31ecfb4649e8a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-394259dfddb0d600", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 mobile/src/store/settingsStore.ts:67"}, "properties": {"repobilityId": "21788f2975f40552", "scanner": "scanner-primary", "fingerprint": "394259dfddb0d600", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d433fd817b51ce4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/index.ts:328"}, "properties": {"repobilityId": "966123b8e19cb728", "scanner": "scanner-primary", "fingerprint": "6d433fd817b51ce4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a033535c41fde70", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/config/redis.ts:20"}, "properties": {"repobilityId": "f0e5e9c2a3d4ec46", "scanner": "scanner-primary", "fingerprint": "4a033535c41fde70", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b3c3bce24bc90c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/config/database.ts:45"}, "properties": {"repobilityId": "2284f58e04d729b2", "scanner": "scanner-primary", "fingerprint": "2b3c3bce24bc90c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbcfb9ac16011264", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/clanService.ts:27"}, "properties": {"repobilityId": "b8a56c5ab2b6067b", "scanner": "scanner-primary", "fingerprint": "cbcfb9ac16011264", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-78595dea5856b92a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/eventEngine.ts:310"}, "properties": {"repobilityId": "62e1901a2826cb01", "scanner": "scanner-primary", "fingerprint": "78595dea5856b92a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cbf74972dca5848b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/eventEngine.ts:93"}, "properties": {"repobilityId": "967f6bfa7f02275a", "scanner": "scanner-primary", "fingerprint": "cbf74972dca5848b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e69196f7f1c4c96c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/osmContextService.ts:223"}, "properties": {"repobilityId": "03cef428ddc23bf8", "scanner": "scanner-primary", "fingerprint": "e69196f7f1c4c96c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f8ec0f6003f5e7bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/energyService.ts:169"}, "properties": {"repobilityId": "727641069601243e", "scanner": "scanner-primary", "fingerprint": "f8ec0f6003f5e7bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d798907a49493326", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/notificationService.ts:160"}, "properties": {"repobilityId": "b099b1780f441dbc", "scanner": "scanner-primary", "fingerprint": "d798907a49493326", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b617e731877ad727", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/aiVerification.ts:70"}, "properties": {"repobilityId": "45b45091efea147e", "scanner": "scanner-primary", "fingerprint": "b617e731877ad727", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d1104d03a915eb58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/extractionService.ts:256"}, "properties": {"repobilityId": "f5c8fe702377d453", "scanner": "scanner-primary", "fingerprint": "d1104d03a915eb58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68e191a6c34db9ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/claimEngine.ts:271"}, "properties": {"repobilityId": "33032f0d352ea42f", "scanner": "scanner-primary", "fingerprint": "68e191a6c34db9ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c520a0bbb326a90", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/balanceService.ts:348"}, "properties": {"repobilityId": "6908a9e09ba6bfa0", "scanner": "scanner-primary", "fingerprint": "5c520a0bbb326a90", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e65c43930c834e24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/pushService.ts:25"}, "properties": {"repobilityId": "ab43470640589c58", "scanner": "scanner-primary", "fingerprint": "e65c43930c834e24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f43317c10e7e981f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/wsService.ts:56"}, "properties": {"repobilityId": "8456d8c8d11232ce", "scanner": "scanner-primary", "fingerprint": "f43317c10e7e981f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-564fa4c577356ee8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/leaderboardService.ts:191"}, "properties": {"repobilityId": "e7206201f1520b2b", "scanner": "scanner-primary", "fingerprint": "564fa4c577356ee8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8169d3ed751d00be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/decayEngine.ts:85"}, "properties": {"repobilityId": "abda4895193a7fe8", "scanner": "scanner-primary", "fingerprint": "8169d3ed751d00be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb6847c9c4d59cf2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 server/src/services/hackEngine.ts:2"}, "properties": {"repobilityId": "48c75031d4109e9a", "scanner": "scanner-primary", "fingerprint": "eb6847c9c4d59cf2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-46f74f0dbd807339", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/moderationService.ts:346"}, "properties": {"repobilityId": "6b3d54dbe0504849", "scanner": "scanner-primary", "fingerprint": "46f74f0dbd807339", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d74391de1f74b0d3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/services/seedQuestEngine.ts:133"}, "properties": {"repobilityId": "26fe0a43aa750697", "scanner": "scanner-primary", "fingerprint": "d74391de1f74b0d3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7308d2f5fb4532bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phase0Jobs.ts:75"}, "properties": {"repobilityId": "6c129c3395640d6b", "scanner": "scanner-primary", "fingerprint": "7308d2f5fb4532bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88d72d3acd86e259", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseDJobs.ts:176"}, "properties": {"repobilityId": "4cc14a429a17777a", "scanner": "scanner-primary", "fingerprint": "88d72d3acd86e259", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2328a64d81ce0379", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseBJobs.ts:27"}, "properties": {"repobilityId": "b6a9e24adc62ca11", "scanner": "scanner-primary", "fingerprint": "2328a64d81ce0379", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cab357e9b0b8d8d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/decayCron.ts:45"}, "properties": {"repobilityId": "abc20aa2f1ace586", "scanner": "scanner-primary", "fingerprint": "5cab357e9b0b8d8d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cc13d6d0932eb89c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC1Jobs.ts:29"}, "properties": {"repobilityId": "0ce2a91b3a9dfd3c", "scanner": "scanner-primary", "fingerprint": "cc13d6d0932eb89c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ae1f60211065a7d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/clanFormation.ts:142"}, "properties": {"repobilityId": "855c8204d2c93bba", "scanner": "scanner-primary", "fingerprint": "7ae1f60211065a7d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a93e54c07e53f1e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseF1Jobs.ts:33"}, "properties": {"repobilityId": "11fc990d19b8d2b2", "scanner": "scanner-primary", "fingerprint": "7a93e54c07e53f1e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2836b8387c794680", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseC2Jobs.ts:40"}, "properties": {"repobilityId": "867bcb83e18b146b", "scanner": "scanner-primary", "fingerprint": "2836b8387c794680", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc984a42a44a549a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/leaderboardCron.ts:28"}, "properties": {"repobilityId": "916594d87205bef6", "scanner": "scanner-primary", "fingerprint": "fc984a42a44a549a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3227c43b882b4352", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/src/jobs/phaseAJobs.ts:26"}, "properties": {"repobilityId": "1595e511e5d5d82f", "scanner": "scanner-primary", "fingerprint": "3227c43b882b4352", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b69f45b2dcff8d24", "level": "warning", "message": {"text": "Dockerfile runs as root: server/Dockerfile"}, "properties": {"repobilityId": "4600ca3b571a3f30", "scanner": "scanner-primary", "fingerprint": "b69f45b2dcff8d24", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-d7158aa1e38492c6", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "d4a273007cd8368b", "scanner": "scanner-primary", "fingerprint": "d7158aa1e38492c6", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/Dockerfile"}, "region": {"startLine": 1}}}]}, {"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-fe4f095e880ba360", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/index.html:867"}, "properties": {"repobilityId": "cba7363c134f7b1d", "scanner": "scanner-primary", "fingerprint": "fe4f095e880ba360", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/index.html"}, "region": {"startLine": 867}}}]}, {"ruleId": "scanner-7e82a8546190a96e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/it/index.html:684"}, "properties": {"repobilityId": "b6820dc3a6f8e331", "scanner": "scanner-primary", "fingerprint": "7e82a8546190a96e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/it/index.html"}, "region": {"startLine": 684}}}]}, {"ruleId": "scanner-c2647032fa0da374", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/id/index.html:863"}, "properties": {"repobilityId": "c9ae3c5b1bea1801", "scanner": "scanner-primary", "fingerprint": "c2647032fa0da374", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/id/index.html"}, "region": {"startLine": 863}}}]}, {"ruleId": "scanner-2a42f479f971fa01", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/es-mx/index.html:713"}, "properties": {"repobilityId": "479aa5e54f166d24", "scanner": "scanner-primary", "fingerprint": "2a42f479f971fa01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/es-mx/index.html"}, "region": {"startLine": 713}}}]}, {"ruleId": "scanner-ef8849e33915dcf8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ko/index.html:742"}, "properties": {"repobilityId": "41984d7befc156cf", "scanner": "scanner-primary", "fingerprint": "ef8849e33915dcf8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ko/index.html"}, "region": {"startLine": 742}}}]}, {"ruleId": "scanner-978c8b5a111f872f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-cn/index.html:727"}, "properties": {"repobilityId": "2fa48be13092adc7", "scanner": "scanner-primary", "fingerprint": "978c8b5a111f872f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/zh-cn/index.html"}, "region": {"startLine": 727}}}]}, {"ruleId": "scanner-ebeb6a67785f93e0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ar/index.html:733"}, "properties": {"repobilityId": "9f6ad1db3e8633cc", "scanner": "scanner-primary", "fingerprint": "ebeb6a67785f93e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ar/index.html"}, "region": {"startLine": 733}}}]}, {"ruleId": "scanner-eeeb315a8ef55df0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ja/index.html:739"}, "properties": {"repobilityId": "fecbc1bacfd76be7", "scanner": "scanner-primary", "fingerprint": "eeeb315a8ef55df0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ja/index.html"}, "region": {"startLine": 739}}}]}, {"ruleId": "scanner-9b5190b0194c0355", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/fr/index.html:686"}, "properties": {"repobilityId": "d118dc9e54401f54", "scanner": "scanner-primary", "fingerprint": "9b5190b0194c0355", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/fr/index.html"}, "region": {"startLine": 686}}}]}, {"ruleId": "scanner-8053e652631f05fe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/zh-tw/index.html:727"}, "properties": {"repobilityId": "10e3c63fadbe8ecf", "scanner": "scanner-primary", "fingerprint": "8053e652631f05fe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/zh-tw/index.html"}, "region": {"startLine": 727}}}]}, {"ruleId": "scanner-13ff5afff8bf73e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/en-in/index.html:863"}, "properties": {"repobilityId": "7879544ea96bc19e", "scanner": "scanner-primary", "fingerprint": "13ff5afff8bf73e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/en-in/index.html"}, "region": {"startLine": 863}}}]}, {"ruleId": "scanner-46a96d2921586c66", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/index.html:733"}, "properties": {"repobilityId": "de9b96f36a5fff75", "scanner": "scanner-primary", "fingerprint": "46a96d2921586c66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/hi/index.html"}, "region": {"startLine": 733}}}]}, {"ruleId": "scanner-28a3478381dc4eea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/hi/about.html:407"}, "properties": {"repobilityId": "b5fd1119765138fa", "scanner": "scanner-primary", "fingerprint": "28a3478381dc4eea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/hi/about.html"}, "region": {"startLine": 407}}}]}, {"ruleId": "scanner-1f7b490e6df591a1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/en/index.html:863"}, "properties": {"repobilityId": "62f4d6dccd0dc679", "scanner": "scanner-primary", "fingerprint": "1f7b490e6df591a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/en/index.html"}, "region": {"startLine": 863}}}]}, {"ruleId": "scanner-540a324dd59d82be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/pt-br/index.html:729"}, "properties": {"repobilityId": "c8ab356fc6002e88", "scanner": "scanner-primary", "fingerprint": "540a324dd59d82be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pt-br/index.html"}, "region": {"startLine": 729}}}]}, {"ruleId": "scanner-67e42cfa18ee9431", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/pokemon-go.html:588"}, "properties": {"repobilityId": "b592108ca32f0eab", "scanner": "scanner-primary", "fingerprint": "67e42cfa18ee9431", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/vs/pokemon-go.html"}, "region": {"startLine": 588}}}]}, {"ruleId": "scanner-42bdbc66be67054a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/ingress.html:586"}, "properties": {"repobilityId": "1bb3c41d0336b9de", "scanner": "scanner-primary", "fingerprint": "42bdbc66be67054a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/vs/ingress.html"}, "region": {"startLine": 586}}}]}, {"ruleId": "scanner-a201ceaf2084d0dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/vs/geocaching.html:602"}, "properties": {"repobilityId": "ca38f4bd1fc90661", "scanner": "scanner-primary", "fingerprint": "a201ceaf2084d0dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/vs/geocaching.html"}, "region": {"startLine": 602}}}]}, {"ruleId": "scanner-9b430746964fc9f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/tr/index.html:715"}, "properties": {"repobilityId": "76e244d8e7bd2232", "scanner": "scanner-primary", "fingerprint": "9b430746964fc9f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/tr/index.html"}, "region": {"startLine": 715}}}]}, {"ruleId": "scanner-c3d3ed55b7558a44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/ru/index.html:741"}, "properties": {"repobilityId": "7b9fd509a04a7dc5", "scanner": "scanner-primary", "fingerprint": "c3d3ed55b7558a44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/ru/index.html"}, "region": {"startLine": 741}}}]}, {"ruleId": "scanner-f5ca2a82e5dc1dd0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/quests.html:567"}, "properties": {"repobilityId": "606d24b879c5bf38", "scanner": "scanner-primary", "fingerprint": "f5ca2a82e5dc1dd0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/quests.html"}, "region": {"startLine": 567}}}]}, {"ruleId": "scanner-e0c32533c0e6b9c5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/defense.html:452"}, "properties": {"repobilityId": "596853e805251ab0", "scanner": "scanner-primary", "fingerprint": "e0c32533c0e6b9c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/defense.html"}, "region": {"startLine": 452}}}]}, {"ruleId": "scanner-5bddf3f5dbfceea9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/social.html:502"}, "properties": {"repobilityId": "c0e2bd43a81f35cc", "scanner": "scanner-primary", "fingerprint": "5bddf3f5dbfceea9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/social.html"}, "region": {"startLine": 502}}}]}, {"ruleId": "scanner-28458f9ae788fd4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/territorien.html:498"}, "properties": {"repobilityId": "c6a2f5ae4fa9d02c", "scanner": "scanner-primary", "fingerprint": "28458f9ae788fd4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/territorien.html"}, "region": {"startLine": 498}}}]}, {"ruleId": "scanner-ce9dcbd41f9099ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/events.html:494"}, "properties": {"repobilityId": "66acad34076bb56c", "scanner": "scanner-primary", "fingerprint": "ce9dcbd41f9099ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/events.html"}, "region": {"startLine": 494}}}]}, {"ruleId": "scanner-98f03d2e4993e604", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/features/echos.html:449"}, "properties": {"repobilityId": "5ff86e19eb822de8", "scanner": "scanner-primary", "fingerprint": "98f03d2e4993e604", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/features/echos.html"}, "region": {"startLine": 449}}}]}, {"ruleId": "scanner-8806c847896ca71f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/territorien.html:527"}, "properties": {"repobilityId": "947f3e2e71107acc", "scanner": "scanner-primary", "fingerprint": "8806c847896ca71f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/howto/territorien.html"}, "region": {"startLine": 527}}}]}, {"ruleId": "scanner-0f2215241617e6bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/clans.html:553"}, "properties": {"repobilityId": "31572dd705b0c6b6", "scanner": "scanner-primary", "fingerprint": "0f2215241617e6bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/howto/clans.html"}, "region": {"startLine": 553}}}]}, {"ruleId": "scanner-b34162082de76417", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/echos.html:521"}, "properties": {"repobilityId": "d456b22dc3e24c82", "scanner": "scanner-primary", "fingerprint": "b34162082de76417", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/howto/echos.html"}, "region": {"startLine": 521}}}]}, {"ruleId": "scanner-7d4448bfeda2ed12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/howto/verteidigungs-minispiele.html:517"}, "properties": {"repobilityId": "aa7bd2479556af75", "scanner": "scanner-primary", "fingerprint": "7d4448bfeda2ed12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/howto/verteidigungs-minispiele.html"}, "region": {"startLine": 517}}}]}, {"ruleId": "scanner-b76c4d6798edec2e", "level": "error", "message": {"text": "Possible secret in mobile/src/i18n/en/auth.ts"}, "properties": {"repobilityId": "fc9c99ffee3e58d2", "scanner": "scanner-primary", "fingerprint": "b76c4d6798edec2e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile/src/i18n/en/auth.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-b76c4d6798edec2e", "level": "error", "message": {"text": "Possible secret in mobile/src/i18n/en/auth.ts"}, "properties": {"repobilityId": "fc9c99ffee3e58d2", "scanner": "scanner-primary", "fingerprint": "b76c4d6798edec2e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile/src/i18n/en/auth.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-10fa250a20e94619", "level": "error", "message": {"text": "Possible secret in mobile/src/i18n/de/auth.ts"}, "properties": {"repobilityId": "17c7b3bf5dc5fc87", "scanner": "scanner-primary", "fingerprint": "10fa250a20e94619", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile/src/i18n/de/auth.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-10fa250a20e94619", "level": "error", "message": {"text": "Possible secret in mobile/src/i18n/de/auth.ts"}, "properties": {"repobilityId": "17c7b3bf5dc5fc87", "scanner": "scanner-primary", "fingerprint": "10fa250a20e94619", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mobile/src/i18n/de/auth.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "30dc547e5dfa0d7e", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-75ab3feb58d720cb", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_ptbr.py (1708 lines)"}, "properties": {"repobilityId": "baba59be812a09f0", "scanner": "scanner-primary", "fingerprint": "75ab3feb58d720cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a132067d44a98608", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_zhtw.py (1751 lines)"}, "properties": {"repobilityId": "59a4f903065ae55a", "scanner": "scanner-primary", "fingerprint": "a132067d44a98608", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eefaf28cabe144ef", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_ko.py (1707 lines)"}, "properties": {"repobilityId": "069f5a7255493565", "scanner": "scanner-primary", "fingerprint": "eefaf28cabe144ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f64697118f70e9e1", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_fr.py (1753 lines)"}, "properties": {"repobilityId": "a65521381c0e0e3c", "scanner": "scanner-primary", "fingerprint": "f64697118f70e9e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae410dd595ba4e94", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_id.py (1757 lines)"}, "properties": {"repobilityId": "dde8d2eb77dfcdbf", "scanner": "scanner-primary", "fingerprint": "ae410dd595ba4e94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-161bb8ef5fbd06d8", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_enin.py (1733 lines)"}, "properties": {"repobilityId": "6326d59bc2dd65c3", "scanner": "scanner-primary", "fingerprint": "161bb8ef5fbd06d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-81cac37a1542d4fb", "level": "note", "message": {"text": "Very large file: docs/_apply_geo_tables.py (1139 lines)"}, "properties": {"repobilityId": "6db72467f37fc724", "scanner": "scanner-primary", "fingerprint": "81cac37a1542d4fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-958e042d6787f12f", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_de.py (1678 lines)"}, "properties": {"repobilityId": "72d4def501fb73ad", "scanner": "scanner-primary", "fingerprint": "958e042d6787f12f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9840a8c21b12c2b", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_tr.py (1689 lines)"}, "properties": {"repobilityId": "630da79ff833efa8", "scanner": "scanner-primary", "fingerprint": "f9840a8c21b12c2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f0d37373c6832e38", "level": "note", "message": {"text": "Very large file: docs/_apply_phaseE.py (912 lines)"}, "properties": {"repobilityId": "bd1a3e4b9d251ae0", "scanner": "scanner-primary", "fingerprint": "f0d37373c6832e38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed43a1b7d4ce86ee", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_en.py (1725 lines)"}, "properties": {"repobilityId": "73c7654b810d0b5c", "scanner": "scanner-primary", "fingerprint": "ed43a1b7d4ce86ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8980dd789b00c3f9", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_ja.py (1738 lines)"}, "properties": {"repobilityId": "3859d8439338d1d0", "scanner": "scanner-primary", "fingerprint": "8980dd789b00c3f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-645765fe5b2fe5fc", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_hi.py (1224 lines)"}, "properties": {"repobilityId": "b32bc181acfd467b", "scanner": "scanner-primary", "fingerprint": "645765fe5b2fe5fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3098b8690b42ef6b", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_ru.py (1752 lines)"}, "properties": {"repobilityId": "5ba472d3b8f5cc0a", "scanner": "scanner-primary", "fingerprint": "3098b8690b42ef6b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-58b05cd24d5a2d22", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_esmx.py (1726 lines)"}, "properties": {"repobilityId": "89742e7a4dc0d693", "scanner": "scanner-primary", "fingerprint": "58b05cd24d5a2d22", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a26a7b6ef323353", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_it.py (1731 lines)"}, "properties": {"repobilityId": "68c1f97aeda44eb9", "scanner": "scanner-primary", "fingerprint": "6a26a7b6ef323353", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4912623a0e6fa5b5", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_ar.py (1735 lines)"}, "properties": {"repobilityId": "04cf4c0c35ec2dff", "scanner": "scanner-primary", "fingerprint": "4912623a0e6fa5b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-460c55d258624527", "level": "note", "message": {"text": "Very large file: docs/_build_phase1_zhcn.py (1786 lines)"}, "properties": {"repobilityId": "432a2dbf4336fb97", "scanner": "scanner-primary", "fingerprint": "460c55d258624527", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dbcb5598929920cc", "level": "note", "message": {"text": "Very large file: mobile/src/screens/commander/CommanderMapScreen.tsx (2298 lines)"}, "properties": {"repobilityId": "f123af3afe650474", "scanner": "scanner-primary", "fingerprint": "dbcb5598929920cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2fb9981c6ec36411", "level": "note", "message": {"text": "Very large file: mobile/src/screens/map/MapScreen.tsx (2236 lines)"}, "properties": {"repobilityId": "da937e0ad13f4c68", "scanner": "scanner-primary", "fingerprint": "2fb9981c6ec36411", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0cef827da50cfb9d", "level": "note", "message": {"text": "Very large file: web/src/components/CommanderView.tsx (2236 lines)"}, "properties": {"repobilityId": "f0648049debc45fc", "scanner": "scanner-primary", "fingerprint": "0cef827da50cfb9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ed5782bf6f4dce27", "level": "note", "message": {"text": "Very large file: server/src/services/troopEngine.ts (2084 lines)"}, "properties": {"repobilityId": "e21c6c9fba5178d9", "scanner": "scanner-primary", "fingerprint": "ed5782bf6f4dce27", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-45901f0f3ef87861", "level": "note", "message": {"text": "44 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "45901f0f3ef87861", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "5e1b5e5e5cfec9df", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "87f5e6e07fea4fdd", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "80729d4444c29669", "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": "13e0b1ebbe9022e8", "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": "0803271ff8c92b89", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "f33a46011e01369f", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "8f09ee13a3e995a1", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "89dd0b86cb753179", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "05e5a7073e63d133", "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": "be8ea93ab3a87694", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-ecb0d2c55ed6875d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.local.json"}, "properties": {"repobilityId": "d8bae33a6d517bf0", "scanner": "scanner-primary", "fingerprint": "ecb0d2c55ed6875d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9feaa2696e05b6e0", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/_apply_article_hreflang.py:1"}, "properties": {"repobilityId": "abd21e28b34ac6c2", "scanner": "scanner-primary", "fingerprint": "9feaa2696e05b6e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06c70110e66edf8e", "level": "note", "message": {"text": "Legacy-named symbol `footer_copy` in docs/_gen_category_pages.py:153"}, "properties": {"repobilityId": "91d8f020f074e810", "scanner": "scanner-primary", "fingerprint": "06c70110e66edf8e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-89a18deddaee1adc", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/_fix_enin_css.py:1"}, "properties": {"repobilityId": "c1575ef5b1961212", "scanner": "scanner-primary", "fingerprint": "89a18deddaee1adc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-213efc626a51585b", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/_apply_explainer_links.py:1"}, "properties": {"repobilityId": "17777c6911ce2c59", "scanner": "scanner-primary", "fingerprint": "213efc626a51585b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aed35c296e62f225", "level": "none", "message": {"text": "Commented-code block (12 lines) in mobile/src/polyfills.ts:6"}, "properties": {"repobilityId": "c7ba40e1777600fe", "scanner": "scanner-primary", "fingerprint": "aed35c296e62f225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ee892480869758a", "level": "none", "message": {"text": "Commented-code block (5 lines) in mobile/src/i18n/index.ts:5"}, "properties": {"repobilityId": "8b652098fce71ab6", "scanner": "scanner-primary", "fingerprint": "6ee892480869758a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73c3843e0eeb6ae1", "level": "none", "message": {"text": "Commented-code block (5 lines) in mobile/src/screens/commander/CommanderMapScreen.tsx:240"}, "properties": {"repobilityId": "db8404425c1f862d", "scanner": "scanner-primary", "fingerprint": "73c3843e0eeb6ae1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e10574e2b442642", "level": "none", "message": {"text": "Commented-code block (6 lines) in mobile/src/screens/map/TerminalScreen.tsx:107"}, "properties": {"repobilityId": "fad37f519ead0173", "scanner": "scanner-primary", "fingerprint": "0e10574e2b442642", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95f436384b0b775f", "level": "none", "message": {"text": "Commented-code block (9 lines) in mobile/src/screens/map/MiniChessScreen.tsx:482"}, "properties": {"repobilityId": "736e1da97a656793", "scanner": "scanner-primary", "fingerprint": "95f436384b0b775f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c739c6f68f9c28d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in mobile/src/utils/commander.ts:1"}, "properties": {"repobilityId": "25cdf646e0d51b74", "scanner": "scanner-primary", "fingerprint": "c739c6f68f9c28d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2acf143ef915a727", "level": "none", "message": {"text": "Commented-code block (5 lines) in mobile/src/utils/mapStyles.ts:4"}, "properties": {"repobilityId": "e4285cb24a7a8404", "scanner": "scanner-primary", "fingerprint": "2acf143ef915a727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b52884f830904bb8", "level": "none", "message": {"text": "Commented-code block (5 lines) in mobile/src/utils/nightMode.ts:1"}, "properties": {"repobilityId": "fc5f639e12f461c0", "scanner": "scanner-primary", "fingerprint": "b52884f830904bb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef95740160f5356a", "level": "none", "message": {"text": "Commented-code block (6 lines) in mobile/src/services/sensorFusion.ts:1"}, "properties": {"repobilityId": "fe17410e68d3e371", "scanner": "scanner-primary", "fingerprint": "ef95740160f5356a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bf9d80dbc548131", "level": "none", "message": {"text": "Commented-code block (6 lines) in mobile/src/services/websocket.ts:1"}, "properties": {"repobilityId": "e6cf22daafe00fa6", "scanner": "scanner-primary", "fingerprint": "8bf9d80dbc548131", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-549b149ff3cde9c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/theme.ts:1"}, "properties": {"repobilityId": "5e5684593d883a9d", "scanner": "scanner-primary", "fingerprint": "549b149ff3cde9c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bce74b0c74368cc3", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/App.tsx:1"}, "properties": {"repobilityId": "c0135989c942005b", "scanner": "scanner-primary", "fingerprint": "bce74b0c74368cc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d8d23fc24112fd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/api/buildingErrors.ts:1"}, "properties": {"repobilityId": "5dc7a6a84bec7ae7", "scanner": "scanner-primary", "fingerprint": "2d8d23fc24112fd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a0c715a4fe0b418", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/src/api/client.ts:1"}, "properties": {"repobilityId": "3b6d0d00b2fe44b1", "scanner": "scanner-primary", "fingerprint": "8a0c715a4fe0b418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d5ab3694caeb3a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/src/components/MyTerritoriesPanel.tsx:1"}, "properties": {"repobilityId": "db552f64cbc95f4d", "scanner": "scanner-primary", "fingerprint": "0d5ab3694caeb3a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71bb00700ea8faee", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/components/ResourceHud.tsx:1"}, "properties": {"repobilityId": "5970d78fd8049393", "scanner": "scanner-primary", "fingerprint": "71bb00700ea8faee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5937eed6d5795eb", "level": "none", "message": {"text": "Commented-code block (10 lines) in web/src/components/CommanderView.tsx:4"}, "properties": {"repobilityId": "782ba8f1e107892f", "scanner": "scanner-primary", "fingerprint": "f5937eed6d5795eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40283837798b3507", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/src/components/RunnerModal.tsx:4"}, "properties": {"repobilityId": "2b09a99e0904419f", "scanner": "scanner-primary", "fingerprint": "40283837798b3507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90b172a38d7984ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/components/WalkToClaim.tsx:8"}, "properties": {"repobilityId": "41edba79ccbc2fd1", "scanner": "scanner-primary", "fingerprint": "90b172a38d7984ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bed72b44b6c1ae7", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/src/components/TerritoryPanel.tsx:1"}, "properties": {"repobilityId": "0cf7646f70ba456c", "scanner": "scanner-primary", "fingerprint": "1bed72b44b6c1ae7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01daa6a536f12594", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/src/components/BattleReplayModal.tsx:4"}, "properties": {"repobilityId": "cacdc66411451337", "scanner": "scanner-primary", "fingerprint": "01daa6a536f12594", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efcf09924e91ba2c", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/src/store/resourceStore.ts:1"}, "properties": {"repobilityId": "713d6068414cc282", "scanner": "scanner-primary", "fingerprint": "efcf09924e91ba2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04f9e09018177b39", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/src/store/terminalStore.ts:1"}, "properties": {"repobilityId": "c9636d021185baf0", "scanner": "scanner-primary", "fingerprint": "04f9e09018177b39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86aa5a7572b63238", "level": "none", "message": {"text": "Commented-code block (6 lines) in web/src/store/mapStore.ts:1"}, "properties": {"repobilityId": "6ccdca95ac05eb24", "scanner": "scanner-primary", "fingerprint": "86aa5a7572b63238", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c429514067216cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/index.ts:82"}, "properties": {"repobilityId": "a3b567f7b1955a28", "scanner": "scanner-primary", "fingerprint": "7c429514067216cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0150fdeb81275ac0", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/config/constants.ts:1"}, "properties": {"repobilityId": "0ef234dc36c5ae7e", "scanner": "scanner-primary", "fingerprint": "0150fdeb81275ac0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8556d3ab16ce582c", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/utils/geo.ts:1"}, "properties": {"repobilityId": "4f057808947eedc7", "scanner": "scanner-primary", "fingerprint": "8556d3ab16ce582c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99abb2210f8a0096", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/utils/polygon.ts:1"}, "properties": {"repobilityId": "a8a22fcd37346662", "scanner": "scanner-primary", "fingerprint": "99abb2210f8a0096", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b2c5d2661a68f68", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/territories.ts:1"}, "properties": {"repobilityId": "6cc1bd2b5ba7463e", "scanner": "scanner-primary", "fingerprint": "4b2c5d2661a68f68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6714b232de0e45b", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/routes/challenges.ts:1"}, "properties": {"repobilityId": "34615bd115e4682c", "scanner": "scanner-primary", "fingerprint": "d6714b232de0e45b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38037ce96892edab", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/auth.ts:1"}, "properties": {"repobilityId": "84bc8becd5264803", "scanner": "scanner-primary", "fingerprint": "38037ce96892edab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93dcd808810cfae7", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/commander.ts:1"}, "properties": {"repobilityId": "dba5b6381159333c", "scanner": "scanner-primary", "fingerprint": "93dcd808810cfae7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d06ec5dd82eff21f", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/routes/traps.ts:1"}, "properties": {"repobilityId": "4f40f125cc1d12ec", "scanner": "scanner-primary", "fingerprint": "d06ec5dd82eff21f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45bb262575a04732", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/pets.ts:1"}, "properties": {"repobilityId": "49ed56291c74885e", "scanner": "scanner-primary", "fingerprint": "45bb262575a04732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76ba4392db34b931", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/defenses.ts:1"}, "properties": {"repobilityId": "7a56f976d4f6065f", "scanner": "scanner-primary", "fingerprint": "76ba4392db34b931", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2c49febb8a045a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/pve.ts:6"}, "properties": {"repobilityId": "45c886d3626db915", "scanner": "scanner-primary", "fingerprint": "b2c49febb8a045a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9354c779bcbfaad7", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/routes/users.ts:1"}, "properties": {"repobilityId": "cfc7777dcf8d1fda", "scanner": "scanner-primary", "fingerprint": "9354c779bcbfaad7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c2705ea44e2346f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/social.ts:1"}, "properties": {"repobilityId": "ee2b3a98863627b9", "scanner": "scanner-primary", "fingerprint": "8c2705ea44e2346f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ce2467892f79b22", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/routes/aliases.ts:1"}, "properties": {"repobilityId": "92f38389ce08293e", "scanner": "scanner-primary", "fingerprint": "5ce2467892f79b22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9faa211a641b03b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/routes/notifications.ts:1"}, "properties": {"repobilityId": "54bfcf01167a9eae", "scanner": "scanner-primary", "fingerprint": "9faa211a641b03b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a46377563fb7efad", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/routes/invites.ts:1"}, "properties": {"repobilityId": "1a1d89437c863465", "scanner": "scanner-primary", "fingerprint": "a46377563fb7efad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-071f51764cd47597", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/src/routes/meetups.ts:1"}, "properties": {"repobilityId": "af31554d6a474c92", "scanner": "scanner-primary", "fingerprint": "071f51764cd47597", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b9087c730aedff1", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/routes/quests.ts:1"}, "properties": {"repobilityId": "e5ed816a5bd19f30", "scanner": "scanner-primary", "fingerprint": "8b9087c730aedff1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66d8228bdf53b23a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/silentZones.ts:1"}, "properties": {"repobilityId": "8221661732be11f9", "scanner": "scanner-primary", "fingerprint": "66d8228bdf53b23a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09e0886b603abe0c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/places.ts:1"}, "properties": {"repobilityId": "54c687c6812bdeaf", "scanner": "scanner-primary", "fingerprint": "09e0886b603abe0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6be89cedb59d5ca", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/echos.ts:1"}, "properties": {"repobilityId": "e8c9c22ea24130b0", "scanner": "scanner-primary", "fingerprint": "f6be89cedb59d5ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc4f9327247e0aad", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/leaderboards.ts:1"}, "properties": {"repobilityId": "6f4f868221f0083f", "scanner": "scanner-primary", "fingerprint": "bc4f9327247e0aad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89552123cb625252", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/src/routes/duels.ts:1"}, "properties": {"repobilityId": "dbf025d89d4bb14b", "scanner": "scanner-primary", "fingerprint": "89552123cb625252", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b553221db037c4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/buildings.ts:1"}, "properties": {"repobilityId": "96d5a21761be7561", "scanner": "scanner-primary", "fingerprint": "9b553221db037c4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67a734ef9e6355c8", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/src/routes/races.ts:1"}, "properties": {"repobilityId": "b8d59c60cf8a7de3", "scanner": "scanner-primary", "fingerprint": "67a734ef9e6355c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87dad0086938866f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/routes.ts:1"}, "properties": {"repobilityId": "93b7b918c38ec79c", "scanner": "scanner-primary", "fingerprint": "87dad0086938866f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-293b2294f565eac0", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/terminals.ts:1"}, "properties": {"repobilityId": "1abb38917de66f06", "scanner": "scanner-primary", "fingerprint": "293b2294f565eac0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85cdf9ab6863a11e", "level": "none", "message": {"text": "Commented-code block (17 lines) in server/src/routes/clans.ts:1"}, "properties": {"repobilityId": "b20117442b66f2d9", "scanner": "scanner-primary", "fingerprint": "85cdf9ab6863a11e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-debcbb3a52ebc320", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/routes/bounties.ts:1"}, "properties": {"repobilityId": "52677902f1797e8e", "scanner": "scanner-primary", "fingerprint": "debcbb3a52ebc320", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58fad273198a318c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/friends.ts:1"}, "properties": {"repobilityId": "ad2e602328091f5f", "scanner": "scanner-primary", "fingerprint": "58fad273198a318c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1fda2990d7f0cc60", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/src/routes/events.ts:1"}, "properties": {"repobilityId": "e78999ced694d6fe", "scanner": "scanner-primary", "fingerprint": "1fda2990d7f0cc60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-590c6a0aa74bd04a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/resources.ts:5"}, "properties": {"repobilityId": "ef40d529f347016e", "scanner": "scanner-primary", "fingerprint": "590c6a0aa74bd04a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bee339124c88d4f", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/routes/travel.ts:1"}, "properties": {"repobilityId": "fb5d4bd9d6d10e0e", "scanner": "scanner-primary", "fingerprint": "9bee339124c88d4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a82b1a565962abfd", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/routes/artifacts.ts:1"}, "properties": {"repobilityId": "aa655a2178cd725a", "scanner": "scanner-primary", "fingerprint": "a82b1a565962abfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d39d71ee1ea4204d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/routes/features.ts:1"}, "properties": {"repobilityId": "6dffe79d983e7b8c", "scanner": "scanner-primary", "fingerprint": "d39d71ee1ea4204d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25fb731d82c187ca", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/src/routes/turnGames.ts:1"}, "properties": {"repobilityId": "9ba9895b24a53ce1", "scanner": "scanner-primary", "fingerprint": "25fb731d82c187ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4695860fffd5c786", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/clanService.ts:1"}, "properties": {"repobilityId": "6fd720d4d4a2fb48", "scanner": "scanner-primary", "fingerprint": "4695860fffd5c786", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8796e9bec03de78c", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/eventEngine.ts:1"}, "properties": {"repobilityId": "02054c4d876ed470", "scanner": "scanner-primary", "fingerprint": "8796e9bec03de78c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92b682bd6f40103e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/energyService.ts:1"}, "properties": {"repobilityId": "810b2ae60b750993", "scanner": "scanner-primary", "fingerprint": "92b682bd6f40103e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ba65c6067bf1eff", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/trapService.ts:1"}, "properties": {"repobilityId": "7ed148aa49e91060", "scanner": "scanner-primary", "fingerprint": "4ba65c6067bf1eff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98f0e3d150e3242b", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/raceEngine.ts:1"}, "properties": {"repobilityId": "4cb2e40d38293c06", "scanner": "scanner-primary", "fingerprint": "98f0e3d150e3242b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db6c914a531b9007", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/weatherService.ts:1"}, "properties": {"repobilityId": "940e9a2aa65577fb", "scanner": "scanner-primary", "fingerprint": "db6c914a531b9007", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3f8ed5b64f8ccc2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/src/services/weatherService.ts:96"}, "properties": {"repobilityId": "18dbf664eb264ab6", "scanner": "scanner-primary", "fingerprint": "f3f8ed5b64f8ccc2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5231d9ec903e4109", "level": "none", "message": {"text": "Commented-code block (14 lines) in server/src/services/terminalEngine.ts:1"}, "properties": {"repobilityId": "2b32ffba6d7bcb78", "scanner": "scanner-primary", "fingerprint": "5231d9ec903e4109", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39c7e6dc6a842dd0", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/services/visionService.ts:6"}, "properties": {"repobilityId": "3ce047f1a0a60e82", "scanner": "scanner-primary", "fingerprint": "39c7e6dc6a842dd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0278d4b5f0e73ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/inviteService.ts:1"}, "properties": {"repobilityId": "184db79639e98d1b", "scanner": "scanner-primary", "fingerprint": "e0278d4b5f0e73ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d684af4462674b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/duelEngine.ts:1"}, "properties": {"repobilityId": "6eebf249810635a6", "scanner": "scanner-primary", "fingerprint": "7d684af4462674b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f8fd83f834539c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/troopEngine.ts:5"}, "properties": {"repobilityId": "e750e778b7a52730", "scanner": "scanner-primary", "fingerprint": "9f8fd83f834539c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-947effcf92b260b8", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/src/services/airstrikeService.ts:1"}, "properties": {"repobilityId": "6ff162f4a0e85e31", "scanner": "scanner-primary", "fingerprint": "947effcf92b260b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-808ec3e6a43e904e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/notificationService.ts:1"}, "properties": {"repobilityId": "5f666d468f21489c", "scanner": "scanner-primary", "fingerprint": "808ec3e6a43e904e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db02068806d68ecc", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/classDetection.ts:1"}, "properties": {"repobilityId": "40dad48fbf61afe2", "scanner": "scanner-primary", "fingerprint": "db02068806d68ecc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fc5ba629b81e161", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/placeMemoryService.ts:1"}, "properties": {"repobilityId": "0c32262e40959c1e", "scanner": "scanner-primary", "fingerprint": "6fc5ba629b81e161", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66fd1d0996dfb114", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/services/defenseGameEngine.ts:1"}, "properties": {"repobilityId": "73234e445eafef4e", "scanner": "scanner-primary", "fingerprint": "66fd1d0996dfb114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03afcbff20243e45", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/questEngine.ts:1"}, "properties": {"repobilityId": "0847007452910211", "scanner": "scanner-primary", "fingerprint": "03afcbff20243e45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80b64cb68bd1d257", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/aiGeneralService.ts:4"}, "properties": {"repobilityId": "458276a66ffe5cf3", "scanner": "scanner-primary", "fingerprint": "80b64cb68bd1d257", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ac867d468f2d141", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/aiVerification.ts:1"}, "properties": {"repobilityId": "a81144d27d5f182d", "scanner": "scanner-primary", "fingerprint": "6ac867d468f2d141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc615a30a9ae256a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/silentZoneService.ts:1"}, "properties": {"repobilityId": "831db75e98144afe", "scanner": "scanner-primary", "fingerprint": "cc615a30a9ae256a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04c4e92b21134cbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/extractionService.ts:1"}, "properties": {"repobilityId": "a3fdd22deb4a1abf", "scanner": "scanner-primary", "fingerprint": "04c4e92b21134cbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14f7d5a4f10378db", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/claimEngine.ts:1"}, "properties": {"repobilityId": "1fb43365387d589b", "scanner": "scanner-primary", "fingerprint": "14f7d5a4f10378db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85bde80f69df1f72", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/balanceService.ts:1"}, "properties": {"repobilityId": "99f7122a93dbd85a", "scanner": "scanner-primary", "fingerprint": "85bde80f69df1f72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-377f9bcce5ee7ca5", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/pushService.ts:1"}, "properties": {"repobilityId": "3eeb4f66525eef8e", "scanner": "scanner-primary", "fingerprint": "377f9bcce5ee7ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05fb56ca96539ddb", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/wsService.ts:1"}, "properties": {"repobilityId": "e303df97db4cf56a", "scanner": "scanner-primary", "fingerprint": "05fb56ca96539ddb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb68b7b7a5abd6e4", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/services/h3Service.ts:1"}, "properties": {"repobilityId": "3e690c25e8de0d6c", "scanner": "scanner-primary", "fingerprint": "eb68b7b7a5abd6e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-421b97ed83a4cd54", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/bountyService.ts:1"}, "properties": {"repobilityId": "0b2e9e531fd0bde8", "scanner": "scanner-primary", "fingerprint": "421b97ed83a4cd54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffcfe0d40aaf1eea", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/resourceService.ts:1"}, "properties": {"repobilityId": "b5b2cea04f7a6481", "scanner": "scanner-primary", "fingerprint": "ffcfe0d40aaf1eea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41a0c94b9e7de959", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/resonanceService.ts:1"}, "properties": {"repobilityId": "49d0a403bf35bf13", "scanner": "scanner-primary", "fingerprint": "41a0c94b9e7de959", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8031d66dd1b04923", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/challengeEngine.ts:1"}, "properties": {"repobilityId": "1a475701cdf1694c", "scanner": "scanner-primary", "fingerprint": "8031d66dd1b04923", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd44c683f0788dae", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/llmProviders.ts:4"}, "properties": {"repobilityId": "fb1f066049ea3546", "scanner": "scanner-primary", "fingerprint": "cd44c683f0788dae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-748b8e886650e016", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/leaderboardService.ts:1"}, "properties": {"repobilityId": "7147c0213edb387a", "scanner": "scanner-primary", "fingerprint": "748b8e886650e016", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e4af5466464e7cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/artifactService.ts:1"}, "properties": {"repobilityId": "8e1c2ddfdd28bc76", "scanner": "scanner-primary", "fingerprint": "3e4af5466464e7cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dafb1d10d98bd97", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/turnGameEngine.ts:1"}, "properties": {"repobilityId": "092925876348e1c9", "scanner": "scanner-primary", "fingerprint": "4dafb1d10d98bd97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f0554ae2108ac6", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/decayEngine.ts:1"}, "properties": {"repobilityId": "304ba6e8af12e86b", "scanner": "scanner-primary", "fingerprint": "60f0554ae2108ac6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ae1ad9259f62df8", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/friendService.ts:1"}, "properties": {"repobilityId": "09c6dffc7b44812e", "scanner": "scanner-primary", "fingerprint": "8ae1ad9259f62df8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0b0c7270acab702", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/services/hackEngine.ts:1"}, "properties": {"repobilityId": "3902753ae420138a", "scanner": "scanner-primary", "fingerprint": "a0b0c7270acab702", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62eb620d946754c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/antiCheat.ts:1"}, "properties": {"repobilityId": "bd535557ea0217b6", "scanner": "scanner-primary", "fingerprint": "62eb620d946754c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29e328cf1c2c633b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/aliasService.ts:1"}, "properties": {"repobilityId": "48cb4793e42bcb31", "scanner": "scanner-primary", "fingerprint": "29e328cf1c2c633b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa1dbf896af9d280", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/battleEngine.ts:1"}, "properties": {"repobilityId": "93367bbe99db7ef0", "scanner": "scanner-primary", "fingerprint": "fa1dbf896af9d280", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41d0e4b6cbcaece2", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/src/services/pveSpawnEngine.ts:1"}, "properties": {"repobilityId": "cc2e08f0acf444aa", "scanner": "scanner-primary", "fingerprint": "41d0e4b6cbcaece2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dafc1c2b42b6d00f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/progressionEngine.ts:1"}, "properties": {"repobilityId": "133a282f888dbc30", "scanner": "scanner-primary", "fingerprint": "dafc1c2b42b6d00f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce1207246a4253e6", "level": "none", "message": {"text": "Commented-code block (12 lines) in server/src/services/aiSimEngine.ts:4"}, "properties": {"repobilityId": "7622dbac60dbaa7a", "scanner": "scanner-primary", "fingerprint": "ce1207246a4253e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d023c2fa41edfc5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/moderationService.ts:1"}, "properties": {"repobilityId": "a76f08e571818490", "scanner": "scanner-primary", "fingerprint": "d023c2fa41edfc5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f6f0e8962f74c4e", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/seedQuestEngine.ts:1"}, "properties": {"repobilityId": "34debdb4518e8adf", "scanner": "scanner-primary", "fingerprint": "3f6f0e8962f74c4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33f050da7a6b03c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/meetupService.ts:1"}, "properties": {"repobilityId": "79e7baf4f473e045", "scanner": "scanner-primary", "fingerprint": "33f050da7a6b03c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a83994fce04e273", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/itemService.ts:1"}, "properties": {"repobilityId": "09e9a58310685515", "scanner": "scanner-primary", "fingerprint": "4a83994fce04e273", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bfd4c4cc3470fc9", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/services/buildingEngine.ts:1"}, "properties": {"repobilityId": "9af58a9e615b3838", "scanner": "scanner-primary", "fingerprint": "2bfd4c4cc3470fc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abbc4e9edde5a2ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/services/featureService.ts:1"}, "properties": {"repobilityId": "401ce5d7c4032f22", "scanner": "scanner-primary", "fingerprint": "abbc4e9edde5a2ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-005568344cf35a37", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/services/manualClanService.ts:1"}, "properties": {"repobilityId": "bd49f85b82cdce2f", "scanner": "scanner-primary", "fingerprint": "005568344cf35a37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e279a218896834", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/jobs/phase0Jobs.ts:1"}, "properties": {"repobilityId": "0acc3cb0fd41bd0d", "scanner": "scanner-primary", "fingerprint": "e4e279a218896834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9551201d0c6f4ba2", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/src/jobs/phaseDJobs.ts:4"}, "properties": {"repobilityId": "3081421e595fadae", "scanner": "scanner-primary", "fingerprint": "9551201d0c6f4ba2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9831a44e77fef7a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseBJobs.ts:1"}, "properties": {"repobilityId": "a31354ddcafd9479", "scanner": "scanner-primary", "fingerprint": "9831a44e77fef7a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a444670abe7732", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/jobs/decayCron.ts:265"}, "properties": {"repobilityId": "41c51f9101e87a1f", "scanner": "scanner-primary", "fingerprint": "f1a444670abe7732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3da573920167f8a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/src/jobs/phaseC1Jobs.ts:6"}, "properties": {"repobilityId": "53c19dc5063f3826", "scanner": "scanner-primary", "fingerprint": "d3da573920167f8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d0c364f7dbe8073", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/jobs/clanFormation.ts:1"}, "properties": {"repobilityId": "57580966f7c347c9", "scanner": "scanner-primary", "fingerprint": "4d0c364f7dbe8073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d8fd72e19f66dbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseF1Jobs.ts:8"}, "properties": {"repobilityId": "f62fc436f912696f", "scanner": "scanner-primary", "fingerprint": "2d8fd72e19f66dbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6329c02db52991b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/jobs/titleCheck.ts:1"}, "properties": {"repobilityId": "9940f84be7a28dd6", "scanner": "scanner-primary", "fingerprint": "6329c02db52991b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03df2a5bf5c6971b", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/src/jobs/phaseC2Jobs.ts:4"}, "properties": {"repobilityId": "8dc9d60bdfbef27d", "scanner": "scanner-primary", "fingerprint": "03df2a5bf5c6971b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a6ccd30b9eb4fe4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/src/jobs/leaderboardCron.ts:1"}, "properties": {"repobilityId": "42f65d9e7ef645ae", "scanner": "scanner-primary", "fingerprint": "6a6ccd30b9eb4fe4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa9fe4d537478a8e", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/src/jobs/phaseAJobs.ts:1"}, "properties": {"repobilityId": "44e3d3a3b0f1b6f9", "scanner": "scanner-primary", "fingerprint": "aa9fe4d537478a8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0b17c8c07a7421d", "level": "note", "message": {"text": "8 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "17fe720e8247f9df", "scanner": "scanner-primary", "fingerprint": "d0b17c8c07a7421d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-c54c6fb8e364daaa", "level": "note", "message": {"text": "Near-duplicate function bodies in 16 places"}, "properties": {"repobilityId": "f191ee21e4990c10", "scanner": "scanner-primary", "fingerprint": "c54c6fb8e364daaa", "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": "f867fd5cc127d122", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ee53e8e0c58609d8", "level": "note", "message": {"text": "Near-duplicate function bodies in 15 places"}, "properties": {"repobilityId": "7aae10db542a6d18", "scanner": "scanner-primary", "fingerprint": "ee53e8e0c58609d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "8cdc16e645615796", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "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": "1d2d8b1a51a7911e", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-122053f21232d80c", "level": "note", "message": {"text": "Near-duplicate function bodies in 14 places"}, "properties": {"repobilityId": "8b39f24ed64bdf7c", "scanner": "scanner-primary", "fingerprint": "122053f21232d80c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c54c6fb8e364daaa", "level": "note", "message": {"text": "Near-duplicate function bodies in 16 places"}, "properties": {"repobilityId": "3a444c3ce898adaa", "scanner": "scanner-primary", "fingerprint": "c54c6fb8e364daaa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ee53e8e0c58609d8", "level": "note", "message": {"text": "Near-duplicate function bodies in 15 places"}, "properties": {"repobilityId": "f0bcaaf8da479cc0", "scanner": "scanner-primary", "fingerprint": "ee53e8e0c58609d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ee53e8e0c58609d8", "level": "note", "message": {"text": "Near-duplicate function bodies in 15 places"}, "properties": {"repobilityId": "d1f63d6e4af12a51", "scanner": "scanner-primary", "fingerprint": "ee53e8e0c58609d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-122053f21232d80c", "level": "note", "message": {"text": "Near-duplicate function bodies in 14 places"}, "properties": {"repobilityId": "9e7ed5d1d55edf5f", "scanner": "scanner-primary", "fingerprint": "122053f21232d80c", "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": "e5bc81d52c65117e", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d405e0a886d751f8", "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": "0d178d417d06a60f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "19bb01d5dc94bff8", "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": "98dafa0efe4e64e0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "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": "45005c2ebc169dd2", "scanner": "scanner-primary", "fingerprint": "76a2f6818267a9a8", "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": "54fe86c6b69021d0", "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": "565dad9e55a74771", "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": "0bd3cc4ccc6cd16b", "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": "9e53f6b72a94e972", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-52b1fab7c8a34b2c", "level": "error", "message": {"text": "Dangling fetch: GET https://oauth2.googleapis.com/tokeninfo?id_token=${encodeURIComponent(idToken)} (server/src/routes/auth.ts:228)"}, "properties": {"repobilityId": "1841c04e8098fdd2", "scanner": "scanner-primary", "fingerprint": "52b1fab7c8a34b2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "axios"]}}, {"ruleId": "scanner-8292c0931391749a", "level": "note", "message": {"text": "Unused endpoint: POST /auth/register"}, "properties": {"repobilityId": "12f954a9fb032f86", "scanner": "scanner-primary", "fingerprint": "8292c0931391749a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8fdbacfe9430a6ed", "level": "note", "message": {"text": "Unused endpoint: POST /auth/login"}, "properties": {"repobilityId": "0b09c4138926ca56", "scanner": "scanner-primary", "fingerprint": "8fdbacfe9430a6ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b36892106ecdc9aa", "level": "note", "message": {"text": "Unused endpoint: POST /auth/refresh"}, "properties": {"repobilityId": "49968ea6ed816560", "scanner": "scanner-primary", "fingerprint": "b36892106ecdc9aa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49ff4b7b1540cab2", "level": "note", "message": {"text": "Unused endpoint: POST /auth/web3"}, "properties": {"repobilityId": "27821d3d4d5631bc", "scanner": "scanner-primary", "fingerprint": "49ff4b7b1540cab2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-034336dc074efeb4", "level": "note", "message": {"text": "Unused endpoint: POST /routes"}, "properties": {"repobilityId": "be2b1e2eb479ca7d", "scanner": "scanner-primary", "fingerprint": "034336dc074efeb4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-597ff15849648573", "level": "note", "message": {"text": "Unused endpoint: GET /routes/me"}, "properties": {"repobilityId": "0040d7d4e1818f60", "scanner": "scanner-primary", "fingerprint": "597ff15849648573", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f6d992665a024a6a", "level": "note", "message": {"text": "Unused endpoint: GET /territories"}, "properties": {"repobilityId": "e6fc8a4d8d8f1f65", "scanner": "scanner-primary", "fingerprint": "f6d992665a024a6a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ec192c1be3803f96", "level": "note", "message": {"text": "Unused endpoint: GET /territories/me"}, "properties": {"repobilityId": "24b51e91875209e6", "scanner": "scanner-primary", "fingerprint": "ec192c1be3803f96", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-401fb6d86d7cadb0", "level": "note", "message": {"text": "Unused endpoint: GET /territories/mine"}, "properties": {"repobilityId": "2083d49ad77e3245", "scanner": "scanner-primary", "fingerprint": "401fb6d86d7cadb0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d1bd3b61828ece5", "level": "note", "message": {"text": "Unused endpoint: GET /quests"}, "properties": {"repobilityId": "31cafbb81a051f14", "scanner": "scanner-primary", "fingerprint": "1d1bd3b61828ece5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9b53052c4da067bc", "level": "note", "message": {"text": "Unused endpoint: POST /quests"}, "properties": {"repobilityId": "a2a45cae042237d9", "scanner": "scanner-primary", "fingerprint": "9b53052c4da067bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-03cdcaeb89af477b", "level": "note", "message": {"text": "Unused endpoint: GET /echos"}, "properties": {"repobilityId": "8ee1297ac45edae4", "scanner": "scanner-primary", "fingerprint": "03cdcaeb89af477b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4d6193421dd2bb20", "level": "note", "message": {"text": "Unused endpoint: POST /echos"}, "properties": {"repobilityId": "ffc75895636d6fe1", "scanner": "scanner-primary", "fingerprint": "4d6193421dd2bb20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d6daae716a206915", "level": "note", "message": {"text": "Unused endpoint: GET /challenges"}, "properties": {"repobilityId": "c21102e722f68afb", "scanner": "scanner-primary", "fingerprint": "d6daae716a206915", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-053a9ae6a5e2e732", "level": "note", "message": {"text": "Unused endpoint: POST /challenges"}, "properties": {"repobilityId": "3ac5de18029bd35c", "scanner": "scanner-primary", "fingerprint": "053a9ae6a5e2e732", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f94d917cac79f339", "level": "note", "message": {"text": "Unused endpoint: GET /pets/me"}, "properties": {"repobilityId": "288a2768b5833ae2", "scanner": "scanner-primary", "fingerprint": "f94d917cac79f339", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa37c7cfffb73d9e", "level": "note", "message": {"text": "Unused endpoint: POST /pets"}, "properties": {"repobilityId": "b3c05d55b499f3cf", "scanner": "scanner-primary", "fingerprint": "aa37c7cfffb73d9e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-11c089878e834f1c", "level": "note", "message": {"text": "Unused endpoint: GET /travel/routes"}, "properties": {"repobilityId": "b3e421ccf055ed7b", "scanner": "scanner-primary", "fingerprint": "11c089878e834f1c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9bbb8e7497f32081", "level": "note", "message": {"text": "Unused endpoint: POST /travel/routes"}, "properties": {"repobilityId": "e1c0a21d9c9e7fad", "scanner": "scanner-primary", "fingerprint": "9bbb8e7497f32081", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a8b657222dd85be2", "level": "note", "message": {"text": "Unused endpoint: GET /users/me"}, "properties": {"repobilityId": "80c92434bed12797", "scanner": "scanner-primary", "fingerprint": "a8b657222dd85be2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-76b563f141ae1f12", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/settings"}, "properties": {"repobilityId": "e4779eebbc7864d5", "scanner": "scanner-primary", "fingerprint": "76b563f141ae1f12", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-29f9d7036225389b", "level": "note", "message": {"text": "Unused endpoint: GET /users/me/export"}, "properties": {"repobilityId": "646c5e38ae0ce925", "scanner": "scanner-primary", "fingerprint": "29f9d7036225389b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a69d2c55f1155d84", "level": "note", "message": {"text": "Unused endpoint: DELETE /users/me"}, "properties": {"repobilityId": "2a6e087212c6e79f", "scanner": "scanner-primary", "fingerprint": "a69d2c55f1155d84", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4b789cfa4da2e49c", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/push-token"}, "properties": {"repobilityId": "c1322687f6886cec", "scanner": "scanner-primary", "fingerprint": "4b789cfa4da2e49c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-97618265a7c14b0b", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/home-zone"}, "properties": {"repobilityId": "b3537f80a8d90f22", "scanner": "scanner-primary", "fingerprint": "97618265a7c14b0b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-414b208d01deebe9", "level": "note", "message": {"text": "Unused endpoint: DELETE /users/me/home-zone"}, "properties": {"repobilityId": "5fd3857850a08c8a", "scanner": "scanner-primary", "fingerprint": "414b208d01deebe9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-60bc5c330890659a", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/avatar"}, "properties": {"repobilityId": "125f9edae29647a8", "scanner": "scanner-primary", "fingerprint": "60bc5c330890659a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe5203e9cea6e026", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/username"}, "properties": {"repobilityId": "a440d94b7f52cb1b", "scanner": "scanner-primary", "fingerprint": "fe5203e9cea6e026", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d90e2d21f5c1bbcd", "level": "note", "message": {"text": "Unused endpoint: PUT /users/me/color"}, "properties": {"repobilityId": "cccc88fb46a87298", "scanner": "scanner-primary", "fingerprint": "d90e2d21f5c1bbcd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d69ac1ea32e80b75", "level": "note", "message": {"text": "Unused endpoint: GET /clans/me"}, "properties": {"repobilityId": "c5f2ff9f012729e9", "scanner": "scanner-primary", "fingerprint": "d69ac1ea32e80b75", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f80eaf875358e8f3", "level": "note", "message": {"text": "Unused endpoint: GET /clans/districts/scores"}, "properties": {"repobilityId": "37ce41da3892e95f", "scanner": "scanner-primary", "fingerprint": "f80eaf875358e8f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1d7cdd2c70bd40b2", "level": "note", "message": {"text": "Unused endpoint: POST /clans"}, "properties": {"repobilityId": "6b2b8b06381f9e36", "scanner": "scanner-primary", "fingerprint": "1d7cdd2c70bd40b2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-26b8c17c21d83bb4", "level": "note", "message": {"text": "Unused endpoint: GET /clans/search"}, "properties": {"repobilityId": "4f29b3457df1d3cb", "scanner": "scanner-primary", "fingerprint": "26b8c17c21d83bb4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cd1c70fddde9384", "level": "note", "message": {"text": "Unused endpoint: GET /friends"}, "properties": {"repobilityId": "acccdee0fd557ca8", "scanner": "scanner-primary", "fingerprint": "0cd1c70fddde9384", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1452305cdc80d5d8", "level": "note", "message": {"text": "Unused endpoint: POST /friends/request"}, "properties": {"repobilityId": "e71a4e74ccbc5bf3", "scanner": "scanner-primary", "fingerprint": "1452305cdc80d5d8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7d827b0b30c3804c", "level": "note", "message": {"text": "Unused endpoint: GET /friends/requests"}, "properties": {"repobilityId": "65069703450a8077", "scanner": "scanner-primary", "fingerprint": "7d827b0b30c3804c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c6362290572cf496", "level": "note", "message": {"text": "Unused endpoint: GET /friends/requests/sent"}, "properties": {"repobilityId": "3943e9b88649c6ac", "scanner": "scanner-primary", "fingerprint": "c6362290572cf496", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-460e95df8a9215b3", "level": "note", "message": {"text": "Unused endpoint: POST /friends/block"}, "properties": {"repobilityId": "10dc584456681588", "scanner": "scanner-primary", "fingerprint": "460e95df8a9215b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc955e9dd0b64e97", "level": "note", "message": {"text": "Unused endpoint: GET /friends/blocked"}, "properties": {"repobilityId": "313c0573bf5e141d", "scanner": "scanner-primary", "fingerprint": "bc955e9dd0b64e97", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a1cf380937b61112", "level": "note", "message": {"text": "Unused endpoint: GET /players/search"}, "properties": {"repobilityId": "5ecc4d1dc3a67ad3", "scanner": "scanner-primary", "fingerprint": "a1cf380937b61112", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3af64e805d88ef35", "level": "note", "message": {"text": "Unused endpoint: GET /notifications"}, "properties": {"repobilityId": "32f833a552c4fca2", "scanner": "scanner-primary", "fingerprint": "3af64e805d88ef35", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6313bb585fe36914", "level": "note", "message": {"text": "Unused endpoint: PUT /notifications/read"}, "properties": {"repobilityId": "395e11e14270d9af", "scanner": "scanner-primary", "fingerprint": "6313bb585fe36914", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f968c256db279a87", "level": "note", "message": {"text": "Unused endpoint: PUT /notifications/settings"}, "properties": {"repobilityId": "ef65f86348d9c7de", "scanner": "scanner-primary", "fingerprint": "f968c256db279a87", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6ad71d781550edea", "level": "note", "message": {"text": "Unused endpoint: GET /artifacts"}, "properties": {"repobilityId": "d4adeb06c9e98606", "scanner": "scanner-primary", "fingerprint": "6ad71d781550edea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a3b6c11a22c7949", "level": "note", "message": {"text": "Unused endpoint: POST /artifacts"}, "properties": {"repobilityId": "c9ecc6007bf144ec", "scanner": "scanner-primary", "fingerprint": "6a3b6c11a22c7949", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4fe0abddff7fa049", "level": "note", "message": {"text": "Unused endpoint: POST /social/reports"}, "properties": {"repobilityId": "29d2bde39b8e52c3", "scanner": "scanner-primary", "fingerprint": "4fe0abddff7fa049", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-deceb26a28050f3a", "level": "note", "message": {"text": "Unused endpoint: GET /social/feed"}, "properties": {"repobilityId": "ba21df761bd40283", "scanner": "scanner-primary", "fingerprint": "deceb26a28050f3a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a7ee251196f605a", "level": "note", "message": {"text": "Unused endpoint: GET /weather"}, "properties": {"repobilityId": "13abd8b94ee6f672", "scanner": "scanner-primary", "fingerprint": "0a7ee251196f605a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fbd790b94ffa7e9b", "level": "note", "message": {"text": "Unused endpoint: GET /silent-zones"}, "properties": {"repobilityId": "1a6c28bee33b30fe", "scanner": "scanner-primary", "fingerprint": "fbd790b94ffa7e9b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-183023fe58eb26cd", "level": "note", "message": {"text": "Unused endpoint: POST /silent-zones"}, "properties": {"repobilityId": "f4676d61f63ab752", "scanner": "scanner-primary", "fingerprint": "183023fe58eb26cd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}