{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-aa02c1ea50990d03", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/sabr-report.js:151", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/sabr-report.js:151"}, "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-4492bed2db985f4d", "name": "Stray `console.log` in TS/JS \u2014 src/debug.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/debug.ts:16"}, "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-7176e5d95d18d844", "name": "Runtime dotenv file present in repo: .env", "shortDescription": {"text": "Runtime dotenv file present in repo: .env"}, "fullDescription": {"text": "`.env` looks like a runtime dotenv file. It contains secret-looking assignments for VITE_FIREBASE_API_KEY. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-55bcdd7f724f133f", "name": "Insecure pattern 'node_child_process' in vite.config.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in vite.config.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0792d608e141f22b", "name": "Possible secret in .env", "shortDescription": {"text": "Possible secret in .env"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-93e60a75b008f9cb", "name": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/react-best-practices/AGENTS.md:2537", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/react-best-practices/AGENTS.md:2537"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-640547ffebcc9a6c", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/mlbtv-auth.js:8", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/mlbtv-auth.js:8"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0e3f6d5c88ad690", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-bio.js:30", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-bio.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-809f7fbfd0c9dc94", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-report.js:22", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-report.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3403416cb6a642ca", "name": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-hls-proxy.ts:58", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-hls-proxy.ts:58"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-207e5c859f07adb1", "name": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/savant-proxy.ts:55", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/savant-proxy.ts:55"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-926495fe1f3a8ca9", "name": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-stream.ts:4", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-stream.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60f0ad55ddd83d30", "name": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/fg-proxy.ts:67", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/fg-proxy.ts:67"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-846352c6dfc34c6e", "name": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlb-video-proxy.ts:41", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlb-video-proxy.ts:41"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d34a82991f6ce86e", "name": "Very large file: src/App.tsx (5979 lines)", "shortDescription": {"text": "Very large file: src/App.tsx (5979 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-1c697188bb93a96d", "name": "Very large file: src/features/players/PlayerProfileModal.tsx (1705 lines)", "shortDescription": {"text": "Very large file: src/features/players/PlayerProfileModal.tsx (1705 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "33 tests / 154 src (ratio 0.21)."}, "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 108 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 16 placeholder/mock markers across 12 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8769bcc771831214", "name": "Agent instruction contains unpinned remote install: .claude/settings.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8bafea0b7804080", "name": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/data-n-plus-one.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/data-n-plus-one.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-650dc4057e4dd5c3", "name": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/conn-prepared-stat", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ed66733d4a5d779", "name": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/AGENTS.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/AGENTS.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ac880fd1b7f77eb", "name": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/rules/patterns-explicit-variants.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/rules/patterns-explicit-variants.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8f2eca9f40ac5b0", "name": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/SKILL.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/SKILL.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-e7e8730e8320d03e", "name": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/references/advanced-patterns.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/references/advanced-patterns.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-21331fe274cb2341", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/advanced-init-once.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/advanced-init-once.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6ab69ddbc3982d8", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-hoist-static-io.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-hoist-static-io.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d53b0086fec000a0", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-cache-react.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-cache-react.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f0e93833a505248", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-parallel-fetching.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-parallel-fetching.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ac3f07630c83a46", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-after-nonblocking.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-after-nonblocking.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7162b7095eda5edc", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-resource-hints.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-resource-hints.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5349eb682153d46", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-split-combined-hooks.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-split-combined-hooks.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a4cdd738c918aca", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-dependencies.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-dependencies.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-866c737115579aaf", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-parallel.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-parallel.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcdb8770895da92f", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-no-shared-module-state.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-no-shared-module-state.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c66e52607b0e6559", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/js-length-check-first.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/js-length-check-first.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f88a985fd531f9a6", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-svg-precision.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc7a809b48292f3f", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-move-effect-to-event.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-move-effect-to-event.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74264311d22d5fad", "name": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-cheap-condition-before-await.", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-cheap-condition-before-await.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b1cf24a4f22b40d", "name": "Commented-code block (5 lines) in tests/smoke-scroll-lock.mjs:149", "shortDescription": {"text": "Commented-code block (5 lines) in tests/smoke-scroll-lock.mjs:149"}, "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-7cee4f73627fa844", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-leaders.mjs:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-leaders.mjs:34"}, "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-2192c7ebc588f1ee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-chadwick-fg-map.mjs:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-chadwick-fg-map.mjs:31"}, "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-73db162b8a523369", "name": "Legacy-named symbol `rest_v1` in scripts/build-chadwick-wiki-map.mjs:6", "shortDescription": {"text": "Legacy-named symbol `rest_v1` in scripts/build-chadwick-wiki-map.mjs:6"}, "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-8f0104c1e99f66de", "name": "Commented-code block (6 lines) in scripts/find-missing-qid-gaps.mjs:11", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/find-missing-qid-gaps.mjs:11"}, "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-83cbeec312717b35", "name": "Commented-code block (14 lines) in netlify/functions/sabr-bio.js:5", "shortDescription": {"text": "Commented-code block (14 lines) in netlify/functions/sabr-bio.js: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-e08ba22fa10b0b46", "name": "Commented-code block (7 lines) in netlify/functions/sabr-report.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in netlify/functions/sabr-report.js:3"}, "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-d717bc3a1077425f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-hls-proxy.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-hls-proxy.ts:78"}, "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-df4fc75eac415069", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/savant-proxy.ts:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/savant-proxy.ts:40"}, "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-25d475b8298063f6", "name": "Commented-code block (6 lines) in netlify/edge-functions/mlbtv-stream.ts:129", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/edge-functions/mlbtv-stream.ts:129"}, "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-e1c9d67349aa79b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-stream.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-stream.ts:22"}, "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-4b17f4a2c07cb877", "name": "Commented-code block (5 lines) in netlify/edge-functions/fg-proxy.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/edge-functions/fg-proxy.ts:7"}, "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-c5463d876d8debb8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/fg-proxy.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/fg-proxy.ts:42"}, "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-59bb1567b60bcb0a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlb-video-proxy.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlb-video-proxy.ts:26"}, "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-70d84d5038c0e05d", "name": "Commented-code block (5 lines) in src/App.tsx:394", "shortDescription": {"text": "Commented-code block (5 lines) in src/App.tsx:394"}, "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-44937db181ff045d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/App.tsx:692", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/App.tsx:692"}, "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-f864daa9096c0285", "name": "Commented-code block (5 lines) in src/api/savantPlayer.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/api/savantPlayer.ts:3"}, "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-40ae3b87de6aaac8", "name": "Commented-code block (5 lines) in src/test/parkDimensions.published.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/test/parkDimensions.published.test.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-77f46342188157b2", "name": "Commented-code block (5 lines) in src/test/milestoneCrossing.test.ts:103", "shortDescription": {"text": "Commented-code block (5 lines) in src/test/milestoneCrossing.test.ts:103"}, "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-1a4ce6cfc71ee04c", "name": "Commented-code block (5 lines) in src/test/trajectory.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/test/trajectory.test.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-36fe91852a8c5127", "name": "Commented-code block (5 lines) in src/components/ScrollFade.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ScrollFade.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6daadba0b2d58f81", "name": "Commented-code block (8 lines) in src/components/RefreshButton.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/RefreshButton.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-f3a56c662a4de70a", "name": "Commented-code block (5 lines) in src/components/LeaderHero.tsx:51", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/LeaderHero.tsx:51"}, "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-e1dfaa375560b6ee", "name": "Commented-code block (5 lines) in src/components/PWAUpdateToast.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/PWAUpdateToast.tsx:3"}, "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-7be07e46b7c7fff1", "name": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:42", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:42"}, "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-1f955bb2076227c3", "name": "Commented-code block (6 lines) in src/components/LeaderTable.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/LeaderTable.tsx:7"}, "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-3e73e2e38e2ece67", "name": "Commented-code block (5 lines) in src/components/LiveUpdatedAgo.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/LiveUpdatedAgo.tsx:3"}, "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-50cdaef1814a0228", "name": "Commented-code block (5 lines) in src/components/EdgeBackSwipe.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/EdgeBackSwipe.tsx:7"}, "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-b967fc78734b941b", "name": "Commented-code block (17 lines) in src/components/Collapsible.tsx:8", "shortDescription": {"text": "Commented-code block (17 lines) in src/components/Collapsible.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-481f1f1dfccd8803", "name": "Commented-code block (7 lines) in src/components/NotebookPageTicks.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/NotebookPageTicks.tsx:3"}, "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-180343036fede275", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useSabrBio.ts:143", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useSabrBio.ts:143"}, "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-348e73a63f212f9d", "name": "Commented-code block (7 lines) in src/lib/storage.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/storage.ts:7"}, "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-5eebe8327a2cb734", "name": "Commented-code block (6 lines) in src/lib/headshotOverrides.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/headshotOverrides.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-45dde0e2fadddaa7", "name": "Commented-code block (10 lines) in src/lib/format.ts:8", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/format.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-d7745551c5c3e751", "name": "Commented-code block (5 lines) in src/lib/positionFilters.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/positionFilters.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-ba61dde3b3fd7c3d", "name": "Commented-code block (5 lines) in src/lib/teamAbbr.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/teamAbbr.ts:25"}, "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-53c1818f8908c35c", "name": "Commented-code block (10 lines) in src/lib/transactionTypes.ts:96", "shortDescription": {"text": "Commented-code block (10 lines) in src/lib/transactionTypes.ts:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b2633a6587e4c0", "name": "Commented-code block (5 lines) in src/lib/teamLogo.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/teamLogo.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-093b99003c201315", "name": "Commented-code block (5 lines) in src/lib/mentaculousState.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/mentaculousState.ts:7"}, "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-3ee3ace7db590f17", "name": "Commented-code block (6 lines) in src/lib/useSheetSwipeDown.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/useSheetSwipeDown.ts:15"}, "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-72f0a94283ceee9c", "name": "Commented-code block (13 lines) in src/lib/usePageSwipe.ts:11", "shortDescription": {"text": "Commented-code block (13 lines) in src/lib/usePageSwipe.ts:11"}, "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-44e2fdbd0e0a32a6", "name": "Commented-code block (6 lines) in src/lib/trajectory.ts:28", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/trajectory.ts:28"}, "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-320a2d0fb824a566", "name": "Commented-code block (9 lines) in src/lib/parkDimensions.ts:66", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/parkDimensions.ts:66"}, "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-c7b72767622731cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/filmRoom.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/filmRoom.ts:56"}, "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-d0ea66572d326d46", "name": "Commented-code block (8 lines) in src/lib/trajectoryCalibration.ts:8", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/trajectoryCalibration.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-ad7c1b5f3ef38edf", "name": "Commented-code block (11 lines) in src/tabs/MilestonesTab.tsx:43", "shortDescription": {"text": "Commented-code block (11 lines) in src/tabs/MilestonesTab.tsx:43"}, "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-eee85a24a8a40fca", "name": "Commented-code block (5 lines) in src/tabs/HrDroughtTab.tsx:145", "shortDescription": {"text": "Commented-code block (5 lines) in src/tabs/HrDroughtTab.tsx:145"}, "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-cce51124ccd2d4e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HrDroughtTab.tsx:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HrDroughtTab.tsx:57"}, "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-69ba7a219a0a1e98", "name": "Commented-code block (5 lines) in src/tabs/TransactionsTab.tsx:182", "shortDescription": {"text": "Commented-code block (5 lines) in src/tabs/TransactionsTab.tsx:182"}, "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-3eadf0c156d9a383", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RecordsTab.tsx:194", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RecordsTab.tsx:194"}, "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-9e5957f760fcd47d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/StandingsTab.tsx:115", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/StandingsTab.tsx:115"}, "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-8f80ac5b4b48b4a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HistoricalTab.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HistoricalTab.tsx:21"}, "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-2b3c6cdffab8b8f8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RotationsTab.tsx:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RotationsTab.tsx:56"}, "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-a0078c7404ab053a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/roster/useTeamRoster.ts:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/roster/useTeamRoster.ts:73"}, "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-4b393eba7943a961", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/standings/useStandingsQuery.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/standings/useStandingsQuery.ts:30"}, "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-7f3f0b5fc9ebe078", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/useQuickAddEvents.ts:166", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/useQuickAddEvents.ts:166"}, "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-dd34a6302baa3a81", "name": "Commented-code block (6 lines) in src/features/games/MLBTVPlayer.tsx:117", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/games/MLBTVPlayer.tsx:117"}, "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-ebbd3c9670c928e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/usePlayerCareerStats.ts:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/usePlayerCareerStats.ts:9"}, "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-f7d6498e03c72529", "name": "Commented-code block (5 lines) in src/features/players/WSPlayerProfile.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/players/WSPlayerProfile.tsx:18"}, "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-5d7aa2d49c271f02", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/WSPlayerProfile.tsx:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/WSPlayerProfile.tsx:87"}, "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-f4e2b3736ca79950", "name": "Commented-code block (5 lines) in src/features/players/useLeagueAverages.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/players/useLeagueAverages.ts:3"}, "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-6d1089fc4ccd0926", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useLeagueAverages.ts:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useLeagueAverages.ts:24"}, "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-43fa10af3ab5b1a7", "name": "Commented-code block (6 lines) in src/features/players/SabrBio.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/players/SabrBio.tsx:25"}, "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-9e6f2bc8ff8c15a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/usePlayerProfileData.ts:47", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/usePlayerProfileData.ts:47"}, "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-96d2a3ccb5dd403c", "name": "Commented-code block (5 lines) in src/features/players/AdvancedStatsTable.tsx:49", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/players/AdvancedStatsTable.tsx:49"}, "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-3422323f78d2e4f0", "name": "Commented-code block (5 lines) in src/features/players/useFangraphsPlayer.ts:79", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/players/useFangraphsPlayer.ts:79"}, "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-48e79fd7a279b994", "name": "Commented-code block (6 lines) in src/features/players/PlayerProfileModal.tsx:14", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/players/PlayerProfileModal.tsx:14"}, "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-3665166f2710ba5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/PlayerProfileModal.tsx:260", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/PlayerProfileModal.tsx:260"}, "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-b6c9eff415c9fe9c", "name": "Commented-code block (7 lines) in src/features/players/useStatsApiAdvanced.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/features/players/useStatsApiAdvanced.ts:3"}, "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-008b913f444ff5a2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useStatsApiAdvanced.ts:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useStatsApiAdvanced.ts:59"}, "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-b995d765f32b4743", "name": "Commented-code block (6 lines) in src/features/players/useSeasonSplits.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/players/useSeasonSplits.ts:3"}, "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-2611cf8438d53b39", "name": "Commented-code block (6 lines) in src/features/audio/NowPlayingBar.tsx:59", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/audio/NowPlayingBar.tsx:59"}, "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-c5476977a99a621f", "name": "Commented-code block (5 lines) in src/features/audio/AudioFeedTrigger.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/audio/AudioFeedTrigger.tsx:14"}, "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-2c8be026be850f5d", "name": "Commented-code block (6 lines) in src/features/mentaculous/MentaculousTab.tsx:91", "shortDescription": {"text": "Commented-code block (6 lines) in src/features/mentaculous/MentaculousTab.tsx:91"}, "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-35d7c4bda1c4eeb0", "name": "Commented-code block (5 lines) in src/features/mentaculous/ReconciliationModal.tsx:77", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/mentaculous/ReconciliationModal.tsx:77"}, "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-4b352b2109ec481d", "name": "Commented-code block (5 lines) in src/features/mentaculous/HomerEntry.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/features/mentaculous/HomerEntry.tsx:13"}, "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}}]}}, "automationDetails": {"id": "repobility/18827"}, "properties": {"repository": "sambeson/vitejs-vite-tddt66wz", "repoUrl": "https://github.com/sambeson/vitejs-vite-tddt66wz", "branch": "main"}, "results": [{"ruleId": "scanner-aa02c1ea50990d03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/sabr-report.js:151"}, "properties": {"repobilityId": "b1406584e6347881", "scanner": "scanner-primary", "fingerprint": "aa02c1ea50990d03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4492bed2db985f4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/debug.ts:16"}, "properties": {"repobilityId": "8ac84161965cd22b", "scanner": "scanner-primary", "fingerprint": "4492bed2db985f4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7176e5d95d18d844", "level": "error", "message": {"text": "Runtime dotenv file present in repo: .env"}, "properties": {"repobilityId": "4b9c737a445874ba", "scanner": "scanner-primary", "fingerprint": "7176e5d95d18d844", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env", "env_file_with_secret"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55bcdd7f724f133f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in vite.config.ts:4"}, "properties": {"repobilityId": "b194fcea7803da43", "scanner": "scanner-primary", "fingerprint": "55bcdd7f724f133f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vite.config.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-0792d608e141f22b", "level": "error", "message": {"text": "Possible secret in .env"}, "properties": {"repobilityId": "30de0ca161e70093", "scanner": "scanner-primary", "fingerprint": "0792d608e141f22b", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-93e60a75b008f9cb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in .claude/skills/react-best-practices/AGENTS.md:2537"}, "properties": {"repobilityId": "60c382ac61275c7b", "scanner": "scanner-primary", "fingerprint": "93e60a75b008f9cb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/AGENTS.md"}, "region": {"startLine": 2537}}}]}, {"ruleId": "scanner-640547ffebcc9a6c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/mlbtv-auth.js:8"}, "properties": {"repobilityId": "2a87d94d8926e4e4", "scanner": "scanner-primary", "fingerprint": "640547ffebcc9a6c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/mlbtv-auth.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-a0e3f6d5c88ad690", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-bio.js:30"}, "properties": {"repobilityId": "fa4049738557b26b", "scanner": "scanner-primary", "fingerprint": "a0e3f6d5c88ad690", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/sabr-bio.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-809f7fbfd0c9dc94", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/sabr-report.js:22"}, "properties": {"repobilityId": "d518489ff51c21e7", "scanner": "scanner-primary", "fingerprint": "809f7fbfd0c9dc94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/sabr-report.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-3403416cb6a642ca", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-hls-proxy.ts:58"}, "properties": {"repobilityId": "0df26ad8a2eb9ad3", "scanner": "scanner-primary", "fingerprint": "3403416cb6a642ca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/edge-functions/mlbtv-hls-proxy.ts"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-207e5c859f07adb1", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/savant-proxy.ts:55"}, "properties": {"repobilityId": "075a8bc3a0fd2ba1", "scanner": "scanner-primary", "fingerprint": "207e5c859f07adb1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/edge-functions/savant-proxy.ts"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-926495fe1f3a8ca9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlbtv-stream.ts:4"}, "properties": {"repobilityId": "69fefb6dd6458e1a", "scanner": "scanner-primary", "fingerprint": "926495fe1f3a8ca9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/edge-functions/mlbtv-stream.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-60f0ad55ddd83d30", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/fg-proxy.ts:67"}, "properties": {"repobilityId": "3b4b7b5ede55be5f", "scanner": "scanner-primary", "fingerprint": "60f0ad55ddd83d30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/edge-functions/fg-proxy.ts"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-846352c6dfc34c6e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/edge-functions/mlb-video-proxy.ts:41"}, "properties": {"repobilityId": "f547c8e86ce871b0", "scanner": "scanner-primary", "fingerprint": "846352c6dfc34c6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/edge-functions/mlb-video-proxy.ts"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-d34a82991f6ce86e", "level": "note", "message": {"text": "Very large file: src/App.tsx (5979 lines)"}, "properties": {"repobilityId": "57bfc71b44f5048a", "scanner": "scanner-primary", "fingerprint": "d34a82991f6ce86e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1c697188bb93a96d", "level": "note", "message": {"text": "Very large file: src/features/players/PlayerProfileModal.tsx (1705 lines)"}, "properties": {"repobilityId": "f7dd1c159cb80d6e", "scanner": "scanner-primary", "fingerprint": "1c697188bb93a96d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "1bd467e9b8a3aff0", "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": "1591343373fc5bc6", "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": "c2a28a93d3dbfbfe", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "7679a6b1c1c24d28", "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": "89b26e5cb631d89e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8769bcc771831214", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/settings.json"}, "properties": {"repobilityId": "f94968d1c8aa7dc6", "scanner": "scanner-primary", "fingerprint": "8769bcc771831214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-a8bafea0b7804080", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/data-n-plus-one.md"}, "properties": {"repobilityId": "44f6709d60717ae1", "scanner": "scanner-primary", "fingerprint": "a8bafea0b7804080", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/supabase-postgres-best-practices/references/data-n-plus-one.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-650dc4057e4dd5c3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md"}, "properties": {"repobilityId": "539a48ca97155bc2", "scanner": "scanner-primary", "fingerprint": "650dc4057e4dd5c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ed66733d4a5d779", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/AGENTS.md"}, "properties": {"repobilityId": "b118687d7e51b9ad", "scanner": "scanner-primary", "fingerprint": "7ed66733d4a5d779", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/composition-patterns/AGENTS.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2ac880fd1b7f77eb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/composition-patterns/rules/patterns-explicit-variants.md"}, "properties": {"repobilityId": "aefaa628d90a129a", "scanner": "scanner-primary", "fingerprint": "2ac880fd1b7f77eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/composition-patterns/rules/patterns-explicit-variants.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8f2eca9f40ac5b0", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/SKILL.md"}, "properties": {"repobilityId": "ba585d2fb0df83ff", "scanner": "scanner-primary", "fingerprint": "d8f2eca9f40ac5b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/nodejs-backend-patterns/SKILL.md"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-e7e8730e8320d03e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/nodejs-backend-patterns/references/advanced-patterns.md"}, "properties": {"repobilityId": "d910ecb09154c629", "scanner": "scanner-primary", "fingerprint": "e7e8730e8320d03e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/nodejs-backend-patterns/references/advanced-patterns.md"}, "region": {"startLine": 254}}}]}, {"ruleId": "scanner-21331fe274cb2341", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/advanced-init-once.md"}, "properties": {"repobilityId": "67bf78f8d31378e0", "scanner": "scanner-primary", "fingerprint": "21331fe274cb2341", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/advanced-init-once.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b6ab69ddbc3982d8", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-hoist-static-io.md"}, "properties": {"repobilityId": "6bd5d98a0713f2be", "scanner": "scanner-primary", "fingerprint": "b6ab69ddbc3982d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/server-hoist-static-io.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d53b0086fec000a0", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-cache-react.md"}, "properties": {"repobilityId": "03de7fd182d86006", "scanner": "scanner-primary", "fingerprint": "d53b0086fec000a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/server-cache-react.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7f0e93833a505248", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-parallel-fetching.md"}, "properties": {"repobilityId": "e5cea2729b5cfdd9", "scanner": "scanner-primary", "fingerprint": "7f0e93833a505248", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/server-parallel-fetching.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ac3f07630c83a46", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-after-nonblocking.md"}, "properties": {"repobilityId": "8e7b18a3fe7ff0ef", "scanner": "scanner-primary", "fingerprint": "4ac3f07630c83a46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/server-after-nonblocking.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7162b7095eda5edc", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-resource-hints.md"}, "properties": {"repobilityId": "db520e68aed6625c", "scanner": "scanner-primary", "fingerprint": "7162b7095eda5edc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/rendering-resource-hints.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e5349eb682153d46", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-split-combined-hooks.md"}, "properties": {"repobilityId": "3c71f884c8de75b5", "scanner": "scanner-primary", "fingerprint": "e5349eb682153d46", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/rerender-split-combined-hooks.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a4cdd738c918aca", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-dependencies.md"}, "properties": {"repobilityId": "465c808b8581af97", "scanner": "scanner-primary", "fingerprint": "0a4cdd738c918aca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/async-dependencies.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-866c737115579aaf", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-parallel.md"}, "properties": {"repobilityId": "a5013f8cd4ef4c06", "scanner": "scanner-primary", "fingerprint": "866c737115579aaf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/async-parallel.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bcdb8770895da92f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/server-no-shared-module-state.md"}, "properties": {"repobilityId": "88e7475a03d4a2b3", "scanner": "scanner-primary", "fingerprint": "bcdb8770895da92f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/server-no-shared-module-state.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c66e52607b0e6559", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/js-length-check-first.md"}, "properties": {"repobilityId": "7921dbd92b7b5a1e", "scanner": "scanner-primary", "fingerprint": "c66e52607b0e6559", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/js-length-check-first.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f88a985fd531f9a6", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "properties": {"repobilityId": "2d27bd599b907234", "scanner": "scanner-primary", "fingerprint": "f88a985fd531f9a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/rendering-svg-precision.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc7a809b48292f3f", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/rerender-move-effect-to-event.md"}, "properties": {"repobilityId": "b9d1c3bfe7599579", "scanner": "scanner-primary", "fingerprint": "dc7a809b48292f3f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/rerender-move-effect-to-event.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-74264311d22d5fad", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/skills/react-best-practices/rules/async-cheap-condition-before-await.md"}, "properties": {"repobilityId": "dbb1750448ecf630", "scanner": "scanner-primary", "fingerprint": "74264311d22d5fad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/react-best-practices/rules/async-cheap-condition-before-await.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6b1cf24a4f22b40d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/smoke-scroll-lock.mjs:149"}, "properties": {"repobilityId": "7970347115ae5085", "scanner": "scanner-primary", "fingerprint": "6b1cf24a4f22b40d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cee4f73627fa844", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/fetch-leaders.mjs:34"}, "properties": {"repobilityId": "629b0dbedccd1396", "scanner": "scanner-primary", "fingerprint": "7cee4f73627fa844", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2192c7ebc588f1ee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/build-chadwick-fg-map.mjs:31"}, "properties": {"repobilityId": "55b8ed3051f0136c", "scanner": "scanner-primary", "fingerprint": "2192c7ebc588f1ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-73db162b8a523369", "level": "note", "message": {"text": "Legacy-named symbol `rest_v1` in scripts/build-chadwick-wiki-map.mjs:6"}, "properties": {"repobilityId": "8f0ff346e939a881", "scanner": "scanner-primary", "fingerprint": "73db162b8a523369", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8f0104c1e99f66de", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/find-missing-qid-gaps.mjs:11"}, "properties": {"repobilityId": "150aaf61fb9ccf41", "scanner": "scanner-primary", "fingerprint": "8f0104c1e99f66de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83cbeec312717b35", "level": "none", "message": {"text": "Commented-code block (14 lines) in netlify/functions/sabr-bio.js:5"}, "properties": {"repobilityId": "9adfcadeb671bd80", "scanner": "scanner-primary", "fingerprint": "83cbeec312717b35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e08ba22fa10b0b46", "level": "none", "message": {"text": "Commented-code block (7 lines) in netlify/functions/sabr-report.js:3"}, "properties": {"repobilityId": "14940737f0bffdc8", "scanner": "scanner-primary", "fingerprint": "e08ba22fa10b0b46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d717bc3a1077425f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-hls-proxy.ts:78"}, "properties": {"repobilityId": "3a9547b704709065", "scanner": "scanner-primary", "fingerprint": "d717bc3a1077425f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df4fc75eac415069", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/savant-proxy.ts:40"}, "properties": {"repobilityId": "95c09527addfbc71", "scanner": "scanner-primary", "fingerprint": "df4fc75eac415069", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-25d475b8298063f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/edge-functions/mlbtv-stream.ts:129"}, "properties": {"repobilityId": "67cfb16a6edecfec", "scanner": "scanner-primary", "fingerprint": "25d475b8298063f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1c9d67349aa79b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlbtv-stream.ts:22"}, "properties": {"repobilityId": "6d4ddb5eb8fbbe45", "scanner": "scanner-primary", "fingerprint": "e1c9d67349aa79b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b17f4a2c07cb877", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/edge-functions/fg-proxy.ts:7"}, "properties": {"repobilityId": "6bdb8f3dd4debb95", "scanner": "scanner-primary", "fingerprint": "4b17f4a2c07cb877", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5463d876d8debb8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/fg-proxy.ts:42"}, "properties": {"repobilityId": "2d038112a8e68cc4", "scanner": "scanner-primary", "fingerprint": "c5463d876d8debb8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59bb1567b60bcb0a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/mlb-video-proxy.ts:26"}, "properties": {"repobilityId": "a436d20ab609f638", "scanner": "scanner-primary", "fingerprint": "59bb1567b60bcb0a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70d84d5038c0e05d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/App.tsx:394"}, "properties": {"repobilityId": "c9dc834ae7bfd22f", "scanner": "scanner-primary", "fingerprint": "70d84d5038c0e05d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44937db181ff045d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/App.tsx:692"}, "properties": {"repobilityId": "65ade38f4d3f6c31", "scanner": "scanner-primary", "fingerprint": "44937db181ff045d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f864daa9096c0285", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api/savantPlayer.ts:3"}, "properties": {"repobilityId": "8ce4a5f687599ca0", "scanner": "scanner-primary", "fingerprint": "f864daa9096c0285", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40ae3b87de6aaac8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/test/parkDimensions.published.test.ts:4"}, "properties": {"repobilityId": "7bdde483745964c2", "scanner": "scanner-primary", "fingerprint": "40ae3b87de6aaac8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77f46342188157b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/test/milestoneCrossing.test.ts:103"}, "properties": {"repobilityId": "cd9c79f5e8ea515c", "scanner": "scanner-primary", "fingerprint": "77f46342188157b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a4ce6cfc71ee04c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/test/trajectory.test.ts:4"}, "properties": {"repobilityId": "314384405ae4fab2", "scanner": "scanner-primary", "fingerprint": "1a4ce6cfc71ee04c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36fe91852a8c5127", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ScrollFade.tsx:36"}, "properties": {"repobilityId": "6bc969248049de7b", "scanner": "scanner-primary", "fingerprint": "36fe91852a8c5127", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6daadba0b2d58f81", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/RefreshButton.tsx:4"}, "properties": {"repobilityId": "35b25bc85a1b1702", "scanner": "scanner-primary", "fingerprint": "6daadba0b2d58f81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3a56c662a4de70a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/LeaderHero.tsx:51"}, "properties": {"repobilityId": "fc3f00b90cc05e18", "scanner": "scanner-primary", "fingerprint": "f3a56c662a4de70a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1dfaa375560b6ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/PWAUpdateToast.tsx:3"}, "properties": {"repobilityId": "8a13d8795981f134", "scanner": "scanner-primary", "fingerprint": "e1dfaa375560b6ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7be07e46b7c7fff1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ErrorBoundary.tsx:42"}, "properties": {"repobilityId": "d44bf387ba3d3c38", "scanner": "scanner-primary", "fingerprint": "7be07e46b7c7fff1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f955bb2076227c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/LeaderTable.tsx:7"}, "properties": {"repobilityId": "6a0822903c0b59bf", "scanner": "scanner-primary", "fingerprint": "1f955bb2076227c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e73e2e38e2ece67", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/LiveUpdatedAgo.tsx:3"}, "properties": {"repobilityId": "1193c56f8d833f15", "scanner": "scanner-primary", "fingerprint": "3e73e2e38e2ece67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50cdaef1814a0228", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/EdgeBackSwipe.tsx:7"}, "properties": {"repobilityId": "75e78bba79f63154", "scanner": "scanner-primary", "fingerprint": "50cdaef1814a0228", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b967fc78734b941b", "level": "none", "message": {"text": "Commented-code block (17 lines) in src/components/Collapsible.tsx:8"}, "properties": {"repobilityId": "560289cd29a2d60b", "scanner": "scanner-primary", "fingerprint": "b967fc78734b941b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-481f1f1dfccd8803", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/NotebookPageTicks.tsx:3"}, "properties": {"repobilityId": "ce948754b78554a6", "scanner": "scanner-primary", "fingerprint": "481f1f1dfccd8803", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-180343036fede275", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/useSabrBio.ts:143"}, "properties": {"repobilityId": "d32f490fa9b9f0ac", "scanner": "scanner-primary", "fingerprint": "180343036fede275", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-348e73a63f212f9d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/storage.ts:7"}, "properties": {"repobilityId": "2b564c4ff149c694", "scanner": "scanner-primary", "fingerprint": "348e73a63f212f9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5eebe8327a2cb734", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/headshotOverrides.ts:1"}, "properties": {"repobilityId": "b3e2ef74189abbaa", "scanner": "scanner-primary", "fingerprint": "5eebe8327a2cb734", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45dde0e2fadddaa7", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/format.ts:8"}, "properties": {"repobilityId": "7e185c471308df2b", "scanner": "scanner-primary", "fingerprint": "45dde0e2fadddaa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7745551c5c3e751", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/positionFilters.ts:1"}, "properties": {"repobilityId": "80d124005ca36655", "scanner": "scanner-primary", "fingerprint": "d7745551c5c3e751", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba61dde3b3fd7c3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/teamAbbr.ts:25"}, "properties": {"repobilityId": "1be25bb8f3c74c3d", "scanner": "scanner-primary", "fingerprint": "ba61dde3b3fd7c3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53c1818f8908c35c", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/lib/transactionTypes.ts:96"}, "properties": {"repobilityId": "437470e3df3990e2", "scanner": "scanner-primary", "fingerprint": "53c1818f8908c35c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b2633a6587e4c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/teamLogo.ts:4"}, "properties": {"repobilityId": "3d506cc1637d824e", "scanner": "scanner-primary", "fingerprint": "d1b2633a6587e4c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-093b99003c201315", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/mentaculousState.ts:7"}, "properties": {"repobilityId": "8482346b076f746b", "scanner": "scanner-primary", "fingerprint": "093b99003c201315", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ee3ace7db590f17", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/useSheetSwipeDown.ts:15"}, "properties": {"repobilityId": "e1c5d8b552f8c838", "scanner": "scanner-primary", "fingerprint": "3ee3ace7db590f17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72f0a94283ceee9c", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/lib/usePageSwipe.ts:11"}, "properties": {"repobilityId": "e19d81a08bf07ad8", "scanner": "scanner-primary", "fingerprint": "72f0a94283ceee9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44e2fdbd0e0a32a6", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/trajectory.ts:28"}, "properties": {"repobilityId": "c24be250f1ab58b9", "scanner": "scanner-primary", "fingerprint": "44e2fdbd0e0a32a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-320a2d0fb824a566", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/parkDimensions.ts:66"}, "properties": {"repobilityId": "47b88ef57def5c6e", "scanner": "scanner-primary", "fingerprint": "320a2d0fb824a566", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7b72767622731cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/filmRoom.ts:56"}, "properties": {"repobilityId": "2430bbbc64609e2a", "scanner": "scanner-primary", "fingerprint": "c7b72767622731cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0ea66572d326d46", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/trajectoryCalibration.ts:8"}, "properties": {"repobilityId": "7c3a310094aa59f5", "scanner": "scanner-primary", "fingerprint": "d0ea66572d326d46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad7c1b5f3ef38edf", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/tabs/MilestonesTab.tsx:43"}, "properties": {"repobilityId": "898ea846659b754e", "scanner": "scanner-primary", "fingerprint": "ad7c1b5f3ef38edf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eee85a24a8a40fca", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/tabs/HrDroughtTab.tsx:145"}, "properties": {"repobilityId": "11f847f210a14895", "scanner": "scanner-primary", "fingerprint": "eee85a24a8a40fca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cce51124ccd2d4e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HrDroughtTab.tsx:57"}, "properties": {"repobilityId": "01540d164e5f5aab", "scanner": "scanner-primary", "fingerprint": "cce51124ccd2d4e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-69ba7a219a0a1e98", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/tabs/TransactionsTab.tsx:182"}, "properties": {"repobilityId": "03df21928858310b", "scanner": "scanner-primary", "fingerprint": "69ba7a219a0a1e98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eadf0c156d9a383", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RecordsTab.tsx:194"}, "properties": {"repobilityId": "8f09aa77aa87f50d", "scanner": "scanner-primary", "fingerprint": "3eadf0c156d9a383", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9e5957f760fcd47d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/StandingsTab.tsx:115"}, "properties": {"repobilityId": "584097436e2f3f0f", "scanner": "scanner-primary", "fingerprint": "9e5957f760fcd47d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8f80ac5b4b48b4a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/HistoricalTab.tsx:21"}, "properties": {"repobilityId": "bf778a63ffab491e", "scanner": "scanner-primary", "fingerprint": "8f80ac5b4b48b4a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b3c6cdffab8b8f8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/tabs/RotationsTab.tsx:56"}, "properties": {"repobilityId": "2d37e84d02d644da", "scanner": "scanner-primary", "fingerprint": "2b3c6cdffab8b8f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0078c7404ab053a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/roster/useTeamRoster.ts:73"}, "properties": {"repobilityId": "d10abe2fd228a5a7", "scanner": "scanner-primary", "fingerprint": "a0078c7404ab053a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b393eba7943a961", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/standings/useStandingsQuery.ts:30"}, "properties": {"repobilityId": "43e1c888f494ef81", "scanner": "scanner-primary", "fingerprint": "4b393eba7943a961", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f3f0b5fc9ebe078", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/useQuickAddEvents.ts:166"}, "properties": {"repobilityId": "ea6356e57824ef67", "scanner": "scanner-primary", "fingerprint": "7f3f0b5fc9ebe078", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dd34a6302baa3a81", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/games/MLBTVPlayer.tsx:117"}, "properties": {"repobilityId": "3f25eb9d937307df", "scanner": "scanner-primary", "fingerprint": "dd34a6302baa3a81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebbd3c9670c928e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/games/usePlayerCareerStats.ts:9"}, "properties": {"repobilityId": "7e7d95605f71a450", "scanner": "scanner-primary", "fingerprint": "ebbd3c9670c928e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7d6498e03c72529", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/players/WSPlayerProfile.tsx:18"}, "properties": {"repobilityId": "fc9f14d127496cfd", "scanner": "scanner-primary", "fingerprint": "f7d6498e03c72529", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d7aa2d49c271f02", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/WSPlayerProfile.tsx:87"}, "properties": {"repobilityId": "e088d81323bc6640", "scanner": "scanner-primary", "fingerprint": "5d7aa2d49c271f02", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f4e2b3736ca79950", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/players/useLeagueAverages.ts:3"}, "properties": {"repobilityId": "ba769d23c5b49606", "scanner": "scanner-primary", "fingerprint": "f4e2b3736ca79950", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d1089fc4ccd0926", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useLeagueAverages.ts:24"}, "properties": {"repobilityId": "3ea4caf449d0cc23", "scanner": "scanner-primary", "fingerprint": "6d1089fc4ccd0926", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-43fa10af3ab5b1a7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/players/SabrBio.tsx:25"}, "properties": {"repobilityId": "6d749bc81f41ecb6", "scanner": "scanner-primary", "fingerprint": "43fa10af3ab5b1a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e6f2bc8ff8c15a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/usePlayerProfileData.ts:47"}, "properties": {"repobilityId": "e91d0540536a094e", "scanner": "scanner-primary", "fingerprint": "9e6f2bc8ff8c15a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96d2a3ccb5dd403c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/players/AdvancedStatsTable.tsx:49"}, "properties": {"repobilityId": "962c7b023739d3e8", "scanner": "scanner-primary", "fingerprint": "96d2a3ccb5dd403c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3422323f78d2e4f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/players/useFangraphsPlayer.ts:79"}, "properties": {"repobilityId": "1be2a033af2c6805", "scanner": "scanner-primary", "fingerprint": "3422323f78d2e4f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48e79fd7a279b994", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/players/PlayerProfileModal.tsx:14"}, "properties": {"repobilityId": "5ba9268404aaa44f", "scanner": "scanner-primary", "fingerprint": "48e79fd7a279b994", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3665166f2710ba5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/PlayerProfileModal.tsx:260"}, "properties": {"repobilityId": "4b9998539d713823", "scanner": "scanner-primary", "fingerprint": "3665166f2710ba5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b6c9eff415c9fe9c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/features/players/useStatsApiAdvanced.ts:3"}, "properties": {"repobilityId": "1cca9a95c9166a0a", "scanner": "scanner-primary", "fingerprint": "b6c9eff415c9fe9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-008b913f444ff5a2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/features/players/useStatsApiAdvanced.ts:59"}, "properties": {"repobilityId": "4a30e1ec03497f4c", "scanner": "scanner-primary", "fingerprint": "008b913f444ff5a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b995d765f32b4743", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/players/useSeasonSplits.ts:3"}, "properties": {"repobilityId": "0b8a237a30836016", "scanner": "scanner-primary", "fingerprint": "b995d765f32b4743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2611cf8438d53b39", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/audio/NowPlayingBar.tsx:59"}, "properties": {"repobilityId": "8ada58c1dd43cc47", "scanner": "scanner-primary", "fingerprint": "2611cf8438d53b39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5476977a99a621f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/audio/AudioFeedTrigger.tsx:14"}, "properties": {"repobilityId": "f563421d5bb2dd24", "scanner": "scanner-primary", "fingerprint": "c5476977a99a621f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c8be026be850f5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/features/mentaculous/MentaculousTab.tsx:91"}, "properties": {"repobilityId": "193f5a08ce26885a", "scanner": "scanner-primary", "fingerprint": "2c8be026be850f5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35d7c4bda1c4eeb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/mentaculous/ReconciliationModal.tsx:77"}, "properties": {"repobilityId": "f2071438ac0a833f", "scanner": "scanner-primary", "fingerprint": "35d7c4bda1c4eeb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b352b2109ec481d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/features/mentaculous/HomerEntry.tsx:13"}, "properties": {"repobilityId": "5870abb5f19de6f6", "scanner": "scanner-primary", "fingerprint": "4b352b2109ec481d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}