{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-059f0ebb5194d2e4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/FaqJsonLd.tsx:32", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/FaqJsonLd.tsx:32"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4a7f3a5fba46a9d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/SiteJsonLd.tsx:35", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/SiteJsonLd.tsx:35"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5847ceb8e7317d41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/Faq.tsx:22", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/Faq.tsx:22"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc85f3f14a00a9a8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/AutoToolJsonLd.tsx:65", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/AutoToolJsonLd.tsx:65"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23e1ca66bc6a7723", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/HomeJsonLd.tsx:26", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/HomeJsonLd.tsx:26"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-560558378c21b755", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/tire-pressure/page.tsx:357", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/tire-pressure/page.tsx:357"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-050b237d2624bd21", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/viscosity/page.tsx:164", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/viscosity/page.tsx:164"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8c452d853a81619", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/fuel-economy/page.tsx:314", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/fuel-economy/page.tsx:314"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db5cefc4b490a1de", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/brewing/page.tsx:141", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/brewing/page.tsx:141"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c660c3d09df0f0da", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/radiation/page.tsx:179", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/radiation/page.tsx:179"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d9e1250e16c6d81", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/hardness/page.tsx:165", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/hardness/page.tsx:165"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f74cdba0c4f03939", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/battery/page.tsx:275", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/battery/page.tsx:275"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-43ae2f11f8757d39", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/gift-money/page.tsx:162", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/gift-money/page.tsx:162"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e196d59add827fc5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/dutch/page.tsx:234", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/dutch/page.tsx:234"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f9f9da69b1edc0e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/cleaning/page.tsx:165", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/cleaning/page.tsx:165"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-810da62ee2b00de1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/laundry-dry/page.tsx:67", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/laundry-dry/page.tsx:67"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e5e98ceb8608e7ba", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/random/page.tsx:234", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/random/page.tsx:234"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a82eb7e877e7384f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/monty-hall/page.tsx:86", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/monty-hall/page.tsx:86"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9ad5d9468ccbef28", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/vin-decoder/page.tsx:185", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/vin-decoder/page.tsx:185"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51d56cf467bdb2e1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/lotto/page.tsx:265", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/lotto/page.tsx:265"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85bb44735843e194", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/ladder/page.tsx:213", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/ladder/page.tsx:213"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-36639ad746e7ac41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/unit-price/page.tsx:147", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/unit-price/page.tsx:147"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2d50c7c69c650a0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/health/uv-protection/page.tsx:338", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/health/uv-protection/page.tsx:338"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c16c64dfd3a8a449", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hiking-time/page.tsx:218", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hiking-time/page.tsx:218"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88b45f1c654cd914", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/race-plan/page.tsx:149", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/race-plan/page.tsx:149"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6e89648c26a2d64", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/football-points/page.tsx:223", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/football-points/page.tsx:223"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3f3cc496b5d331f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/interval-training/page.tsx:486", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/interval-training/page.tsx:486"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7057bff438f17957", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hyrox/page.tsx:222", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hyrox/page.tsx:222"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9bcf912216051c5f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/strength-level/page.tsx:238", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/strength-level/page.tsx:238"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-46eb77156f1bf1c1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/baseball-stats/page.tsx:227", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/baseball-stats/page.tsx:227"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f480d2ae1f8471d1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/climbing-grade/page.tsx:245", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/climbing-grade/page.tsx:245"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4a89215807aa20b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/fight-weight/page.tsx:374", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/fight-weight/page.tsx:374"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2fff3c9d8c4e47b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/paint/page.tsx:272", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/paint/page.tsx:272"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e970b05daff0ad4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/flooring/page.tsx:326", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/flooring/page.tsx:326"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b0b199a4385f438", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/lighting/page.tsx:284", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/lighting/page.tsx:284"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8def9d12f92abe4f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/molding/page.tsx:265", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/molding/page.tsx:265"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-78271cd0d6924276", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/ac-capacity/page.tsx:359", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/ac-capacity/page.tsx:359"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc78631cea6b8fb0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/room-area/page.tsx:276", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/room-area/page.tsx:276"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b078bc9096c7ca4e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/wallpaper/page.tsx:280", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/wallpaper/page.tsx:280"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c30f178c5e5bca75", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/curtain-blind/page.tsx:249", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/curtain-blind/page.tsx:249"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3a1fcc14874397c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/rent-jeonse/page.tsx:224", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/rent-jeonse/page.tsx:224"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5c4745e67abf7fc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/real-estate/page.tsx:351", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/real-estate/page.tsx:351"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e8b51e435beab7c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/freelance-tax/page.tsx:227", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/freelance-tax/page.tsx:227"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b17583b218ffac59", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/historical-money/page.tsx:131", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/historical-money/page.tsx:131"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af5dae419683939b", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/savings/page.tsx:215", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/savings/page.tsx:215"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c11f7ffec5337ee4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/4-insurance/page.tsx:298", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/4-insurance/page.tsx:298"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67c25209087e4886", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/wealth-rank/page.tsx:312", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/wealth-rank/page.tsx:312"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28401e8076e02ce8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/installment/page.tsx:312", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/installment/page.tsx:312"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-994ec97bfdc87b49", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/cost-rate/page.tsx:297", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/cost-rate/page.tsx:297"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c0df14fc1565ce0d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/gold-converter/page.tsx:241", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/gold-converter/page.tsx:241"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c39dc083947e6b58", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/dsr/page.tsx:187", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/dsr/page.tsx:187"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf91aaf4b4ccc96d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/schengen/page.tsx:193", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/schengen/page.tsx:193"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-924871fd975573ed", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/life-time/page.tsx:233", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/life-time/page.tsx:233"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8fd2d58cc1214c70", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/military/page.tsx:315", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/military/page.tsx:315"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ee4dfa9a14b5e98", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/dday/page.tsx:225", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/dday/page.tsx:225"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c720346aa54a5825", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/age/page.tsx:145", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/age/page.tsx:145"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15f4749833bb3dab", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/server-time/page.tsx:235", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/server-time/page.tsx:235"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15246c5d6efce4f6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/css-converter/page.tsx:247", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/css-converter/page.tsx:247"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf73a9e5c08fb089", "name": "Stray `console.log` in TS/JS \u2014 app/tools/dev/curl/curlUtils.ts:752", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/dev/curl/curlUtils.ts:752"}, "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-c7d08587d00994ec", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/token-counter/page.tsx:194", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/token-counter/page.tsx:194"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9860df7d9faf6d3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/json/page.tsx:263", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/json/page.tsx:263"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3423139d0a3f57df", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/number-base/page.tsx:345", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/number-base/page.tsx:345"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01e6d3ed7ce6e91c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/og-preview/page.tsx:175", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/og-preview/page.tsx:175"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bc1cb0759de878c0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/base64/page.tsx:310", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/base64/page.tsx:310"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-613cec47456c6a48", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/tech-stack/page.tsx:207", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/tech-stack/page.tsx:207"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-faead68b973fe66e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/fermi-estimate/page.tsx:297", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/fermi-estimate/page.tsx:297"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39d0bc9246901181", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/gpa-converter/page.tsx:187", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/gpa-converter/page.tsx:187"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c375344b1747be10", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sig-figs/page.tsx:136", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sig-figs/page.tsx:136"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4f6762cd1b4b40f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cosmic-calendar/page.tsx:272", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cosmic-calendar/page.tsx:272"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ce70c4d2f64f3ea0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sci-units/page.tsx:212", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sci-units/page.tsx:212"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6aae2b7f6167e9f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/review-interval/page.tsx:249", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/review-interval/page.tsx:249"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fa6a6ff9c722d30e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cognitive-test/page.tsx:336", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cognitive-test/page.tsx:336"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be15e37dddaba398", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/planet-comparison/page.tsx:317", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/planet-comparison/page.tsx:317"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ce667b9b678a865", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sound-speed/page.tsx:343", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sound-speed/page.tsx:343"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f51b44c5a5534fd7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/page.tsx:323", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/page.tsx:323"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f59d9223a867f2fe", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-301bc92433a046d7", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baker-percent/page.tsx:306", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baker-percent/page.tsx:306"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9787250ef9a69813", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/fruit-syrup/page.tsx:183", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/fruit-syrup/page.tsx:183"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01189a2a25aa355e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/egg-timer/page.tsx:226", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/egg-timer/page.tsx:226"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-196accf712dc5ef8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/recipe/page.tsx:240", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/recipe/page.tsx:240"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ae87c52e055b987", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baking-schedule/page.tsx:234", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baking-schedule/page.tsx:234"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-108b451c02a4cfb4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/bpm/page.tsx:275", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/bpm/page.tsx:275"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69cfc63d424e13e6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/charcount/page.tsx:246", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/charcount/page.tsx:246"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-574ca778b89f3fd3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/frequency/page.tsx:182", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/frequency/page.tsx:182"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-757b4c38dd8b0bbc", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/chord/page.tsx:240", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/chord/page.tsx:240"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-65a734ebbda2b4ca", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/color/page.tsx:280", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/color/page.tsx:280"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a68ee0d66e2a7c8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/print-resolution/page.tsx:174", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/print-resolution/page.tsx:174"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f51c8afd6ccae1f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/tap-tempo/page.tsx:174", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/tap-tempo/page.tsx:174"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fa2d39a94b183be", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/morse-code/page.tsx:136", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/morse-code/page.tsx:136"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f4486c14850f2ec", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/capo/page.tsx:237", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/capo/page.tsx:237"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-736be9868ae5eaae", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/lorem/page.tsx:208", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/lorem/page.tsx:208"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-652c5680a37d04ac", "name": "Insecure pattern 'node_child_process' in scripts/add-th-scope.mjs:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/add-th-scope.mjs:13"}, "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-38e73289f7165e5c", "name": "Insecure pattern 'node_child_process' in scripts/fix-related-tools-grid.mjs:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/fix-related-tools-grid.mjs:8"}, "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-22f065eda0b582d5", "name": "Insecure pattern 'node_child_process' in scripts/add-input-labels.mjs:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/add-input-labels.mjs:16"}, "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-412bdcf4b4965ec1", "name": "Insecure pattern 'node_child_process' in scripts/wrap-hover-media.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/wrap-hover-media.mjs:10"}, "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-f0300e872e2cc932", "name": "Insecure pattern 'dangerous_innerhtml' in components/FaqJsonLd.tsx:32", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/FaqJsonLd.tsx:32"}, "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-2adfd92bbe67ede7", "name": "Insecure pattern 'dangerous_innerhtml' in components/SiteJsonLd.tsx:35", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/SiteJsonLd.tsx:35"}, "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-bf0f6c8fc76cf3a2", "name": "Insecure pattern 'dangerous_innerhtml' in components/Faq.tsx:22", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/Faq.tsx:22"}, "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-760aceb832b710ac", "name": "Insecure pattern 'dangerous_innerhtml' in components/AutoToolJsonLd.tsx:65", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/AutoToolJsonLd.tsx:65"}, "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-dcf5cd6a5ce5ad9c", "name": "Insecure pattern 'dangerous_innerhtml' in components/HomeJsonLd.tsx:26", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/HomeJsonLd.tsx:26"}, "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-d597e43eae0ab773", "name": "Insecure pattern 'cors_wildcard' in app/api/produce-price/route.ts:66", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/produce-price/route.ts:66"}, "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-8d5d1fe46475971c", "name": "Insecure pattern 'cors_wildcard' in app/api/proxy-time/route.ts:38", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/proxy-time/route.ts:38"}, "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-2c0907b05f43cf17", "name": "Insecure pattern 'cors_wildcard' in app/api/og-preview/route.ts:27", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/og-preview/route.ts:27"}, "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-f12a68e3ba288c7d", "name": "Insecure pattern 'weak_hash' in app/disclaimer/page.tsx:214", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/disclaimer/page.tsx:214"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a13fa2038b64445a", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/tire-pressure/page.tsx:357", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/tire-pressure/page.tsx:357"}, "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-4f02c2f34f961da9", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/viscosity/page.tsx:164", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/viscosity/page.tsx:164"}, "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-da68605fbdce5e58", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/fuel-economy/page.tsx:314", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/fuel-economy/page.tsx:314"}, "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-19165d115874f51e", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/brewing/page.tsx:141", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/brewing/page.tsx:141"}, "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-e6b2f52a27bfc4bd", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/radiation/page.tsx:179", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/radiation/page.tsx:179"}, "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-0788aa0186fe7613", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/hardness/page.tsx:165", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/hardness/page.tsx:165"}, "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-20e7ca6f4dc97995", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/battery/page.tsx:275", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/battery/page.tsx:275"}, "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-241daa22b6f137e2", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/gift-money/page.tsx:162", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/gift-money/page.tsx:162"}, "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-d7af46613dfe8ec3", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/dutch/page.tsx:234", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/dutch/page.tsx:234"}, "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-1e2c13c1e8423aa1", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/cleaning/page.tsx:165", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/cleaning/page.tsx:165"}, "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-9132d90e5cc17986", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/laundry-dry/page.tsx:67", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/laundry-dry/page.tsx:67"}, "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-7e3b1d8f7b6d9509", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/random/page.tsx:234", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/random/page.tsx:234"}, "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-0a65fc3e2e5819d0", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/monty-hall/page.tsx:86", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/monty-hall/page.tsx:86"}, "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-cefed3a2bda7c15a", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/vin-decoder/page.tsx:185", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/vin-decoder/page.tsx:185"}, "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-a228d0ba4197ccd8", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/lotto/page.tsx:265", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/lotto/page.tsx:265"}, "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-9eb9a26356eb0e1f", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/ladder/page.tsx:213", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/ladder/page.tsx:213"}, "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-03cd778582219a0c", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/unit-price/page.tsx:147", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/unit-price/page.tsx:147"}, "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-4af10c0ea1ba5df2", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/health/uv-protection/page.tsx:338", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/health/uv-protection/page.tsx:338"}, "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-7a1f707f85933453", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hiking-time/page.tsx:218", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hiking-time/page.tsx:218"}, "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-3464849e58f782aa", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/race-plan/page.tsx:149", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/race-plan/page.tsx:149"}, "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-68c8e5ab5282d3e0", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/football-points/page.tsx:223", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/football-points/page.tsx:223"}, "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-35c32bbd5fb26e36", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/interval-training/page.tsx:486", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/interval-training/page.tsx:486"}, "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-727b11014cdd6867", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hyrox/page.tsx:222", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hyrox/page.tsx:222"}, "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-ca373a69482209cf", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/strength-level/page.tsx:238", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/strength-level/page.tsx:238"}, "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-1c3cc9cca304c5e5", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/baseball-stats/page.tsx:227", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/baseball-stats/page.tsx:227"}, "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-0637926427681d9f", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/climbing-grade/page.tsx:245", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/climbing-grade/page.tsx:245"}, "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-a1f47a09b9d48a19", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/fight-weight/page.tsx:374", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/fight-weight/page.tsx:374"}, "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-41b4b6b06be1fc8c", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/paint/page.tsx:272", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/paint/page.tsx:272"}, "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-21718afa5c8cc6fd", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/flooring/page.tsx:326", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/flooring/page.tsx:326"}, "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-e8c15c2aeb3b9a35", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/lighting/page.tsx:284", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/lighting/page.tsx:284"}, "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-c20a09c8983d7c19", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/molding/page.tsx:265", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/molding/page.tsx:265"}, "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-247ec93e6f591661", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/ac-capacity/page.tsx:359", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/ac-capacity/page.tsx:359"}, "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-d2c3ae1eb13e4677", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/room-area/page.tsx:276", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/room-area/page.tsx:276"}, "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-390c9a8f30874d6a", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/wallpaper/page.tsx:280", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/wallpaper/page.tsx:280"}, "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-ad4fe9b5c672821b", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/curtain-blind/page.tsx:249", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/curtain-blind/page.tsx:249"}, "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-3d170058a4111e16", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/rent-jeonse/page.tsx:224", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/rent-jeonse/page.tsx:224"}, "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-a9cde9dfff4dea61", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/real-estate/page.tsx:351", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/real-estate/page.tsx:351"}, "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-ac20a872c84051be", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/freelance-tax/page.tsx:227", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/freelance-tax/page.tsx:227"}, "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-756bd426cc41555e", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/historical-money/page.tsx:131", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/historical-money/page.tsx:131"}, "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-de78fee7d01ac578", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/savings/page.tsx:215", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/savings/page.tsx:215"}, "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-db4e904d2e5fb71c", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/4-insurance/page.tsx:298", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/4-insurance/page.tsx:298"}, "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-1fdcc990f6260ee9", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/wealth-rank/page.tsx:312", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/wealth-rank/page.tsx:312"}, "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-e7e7b2e6b8239941", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/installment/page.tsx:312", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/installment/page.tsx:312"}, "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-bd533466d3d4bea7", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/cost-rate/page.tsx:297", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/cost-rate/page.tsx:297"}, "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-d35ffe05d3a69c38", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/gold-converter/page.tsx:241", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/gold-converter/page.tsx:241"}, "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-e264c750afeb8b23", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/dsr/page.tsx:187", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/dsr/page.tsx:187"}, "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-3cc75da73fa682f6", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/schengen/page.tsx:193", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/schengen/page.tsx:193"}, "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-26198525d605812b", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/life-time/page.tsx:233", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/life-time/page.tsx:233"}, "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-17aceffbe918d741", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/military/page.tsx:315", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/military/page.tsx:315"}, "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-d54ff4c77ca9464b", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/dday/page.tsx:225", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/dday/page.tsx:225"}, "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-b40cf56b4128b3fb", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/age/page.tsx:145", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/age/page.tsx:145"}, "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-79962e0e4e894f62", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/server-time/page.tsx:235", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/server-time/page.tsx:235"}, "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-7d1f57943b1d9089", "name": "Insecure pattern 'weak_hash' in app/tools/dev/hash/HashClient.tsx:494", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/HashClient.tsx:494"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-472413f9d41a8c20", "name": "Insecure pattern 'weak_hash' in app/tools/dev/hash/page.tsx:9", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/page.tsx:9"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01c5f56de69403a1", "name": "Insecure pattern 'weak_hash' in app/tools/dev/hash/hashUtils.ts:2", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/hashUtils.ts:2"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ff15154509fe36f", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/css-converter/page.tsx:247", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/css-converter/page.tsx:247"}, "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-88800fdf47f2a7c2", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/token-counter/page.tsx:194", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/token-counter/page.tsx:194"}, "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-50e7ed881f8144c4", "name": "Insecure pattern 'weak_hash' in app/tools/dev/yaml-json/page.tsx:392", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/yaml-json/page.tsx:392"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b7880bd47487d2d", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/json/page.tsx:263", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/json/page.tsx:263"}, "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-11182a7fba535007", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/number-base/page.tsx:345", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/number-base/page.tsx:345"}, "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-7c637dc6055127b5", "name": "Insecure pattern 'weak_hash' in app/tools/dev/regex/page.tsx:434", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/regex/page.tsx:434"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f92190f90b482df4", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/og-preview/page.tsx:175", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/og-preview/page.tsx:175"}, "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-370f5808c90ff5b7", "name": "Insecure pattern 'cors_wildcard' in app/tools/dev/http-status/httpStatusUtils.ts:845", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/tools/dev/http-status/httpStatusUtils.ts:845"}, "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-5229297866e8548c", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/base64/page.tsx:310", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/base64/page.tsx:310"}, "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-81df8da4425b2e3e", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/tech-stack/page.tsx:207", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/tech-stack/page.tsx:207"}, "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-2c26d6ab7e205919", "name": "Insecure pattern 'weak_hash' in app/tools/dev/tech-stack/page.tsx:225", "shortDescription": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/tech-stack/page.tsx:225"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a3d9131b47222de", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/fermi-estimate/page.tsx:297", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/fermi-estimate/page.tsx:297"}, "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-0165f7ac79875dc4", "name": "Insecure pattern 'new_function_used' in app/tools/edu/fermi-estimate/FermiEstimateClient.tsx:192", "shortDescription": {"text": "Insecure pattern 'new_function_used' in app/tools/edu/fermi-estimate/FermiEstimateClient.tsx:192"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-92d0aed781bf1309", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/gpa-converter/page.tsx:187", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/gpa-converter/page.tsx:187"}, "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-4fb1a9cc5191c8a9", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sig-figs/page.tsx:136", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sig-figs/page.tsx:136"}, "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-e708ccc8621560e5", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/cosmic-calendar/page.tsx:272", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/cosmic-calendar/page.tsx:272"}, "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-f59da3c555d2e249", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sci-units/page.tsx:212", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sci-units/page.tsx:212"}, "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-3df73fa167b6a01b", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/review-interval/page.tsx:249", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/review-interval/page.tsx:249"}, "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-dda79218930f83f9", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/planet-comparison/page.tsx:317", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/planet-comparison/page.tsx:317"}, "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-6cf581cd94f75053", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sound-speed/page.tsx:343", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sound-speed/page.tsx:343"}, "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-5b68b68883db1186", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/page.tsx:323", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/page.tsx:323"}, "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-247601b49282013a", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920"}, "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-fa357645a41e782c", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baker-percent/page.tsx:306", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baker-percent/page.tsx:306"}, "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-47fe36fd6e7ee644", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/fruit-syrup/page.tsx:183", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/fruit-syrup/page.tsx:183"}, "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-dac26b142cbb0bd3", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/egg-timer/page.tsx:226", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/egg-timer/page.tsx:226"}, "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-2b7826e50c667501", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/recipe/page.tsx:240", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/recipe/page.tsx:240"}, "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-b77d362bf0a87159", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baking-schedule/page.tsx:234", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baking-schedule/page.tsx:234"}, "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-83aa3f2deb11850e", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/bpm/page.tsx:275", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/bpm/page.tsx:275"}, "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-ccc6ed44ef1bb5ab", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/charcount/page.tsx:246", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/charcount/page.tsx:246"}, "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-27c250876a4afd86", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/frequency/page.tsx:182", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/frequency/page.tsx:182"}, "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-80863ce143b9388b", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/chord/page.tsx:240", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/chord/page.tsx:240"}, "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-35cce04b805e5b83", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/color/page.tsx:280", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/color/page.tsx:280"}, "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-ba6ebf9093628aab", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/print-resolution/page.tsx:174", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/print-resolution/page.tsx:174"}, "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-c13a7a3549813f6e", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/tap-tempo/page.tsx:174", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/tap-tempo/page.tsx:174"}, "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-2948c14ea6c3d434", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/morse-code/page.tsx:136", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/morse-code/page.tsx:136"}, "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-c2961400e6a8a8aa", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/capo/page.tsx:237", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/capo/page.tsx:237"}, "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-0a32fa281d81a833", "name": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/lorem/page.tsx:208", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/lorem/page.tsx:208"}, "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-0209502a455dc1b0", "name": "Insecure pattern 'weak_hash' in lib/collections.ts:202", "shortDescription": {"text": "Insecure pattern 'weak_hash' in lib/collections.ts:202"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f19b71e1258d642a", "name": "Insecure pattern 'weak_hash' in lib/tools.ts:246", "shortDescription": {"text": "Insecure pattern 'weak_hash' in lib/tools.ts:246"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-493344fab68b4278", "name": "Very large file: app/tools/health/supplement/SupplementClient.tsx (1173 lines)", "shortDescription": {"text": "Very large file: app/tools/health/supplement/SupplementClient.tsx (1173 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-6801effb16c6a336", "name": "Very large file: app/tools/health/blood-alcohol/BloodAlcoholClient.tsx (1255 lines)", "shortDescription": {"text": "Very large file: app/tools/health/blood-alcohol/BloodAlcoholClient.tsx (1255 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-1236c082c2ca3d45", "name": "Very large file: app/tools/sports/one-rm/OneRMClient.tsx (1318 lines)", "shortDescription": {"text": "Very large file: app/tools/sports/one-rm/OneRMClient.tsx (1318 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-93e480a95b1d2995", "name": "Very large file: app/tools/sports/interval-training/IntervalTrainingClient.tsx (1300 lines)", "shortDescription": {"text": "Very large file: app/tools/sports/interval-training/IntervalTrainingClient.tsx (1300 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-b733157ff23b0266", "name": "Very large file: app/tools/interior/paint/PaintClient.tsx (1171 lines)", "shortDescription": {"text": "Very large file: app/tools/interior/paint/PaintClient.tsx (1171 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-00bb93fea26b96f8", "name": "Very large file: app/tools/finance/car-cost/CarCostClient.tsx (1113 lines)", "shortDescription": {"text": "Very large file: app/tools/finance/car-cost/CarCostClient.tsx (1113 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-ec9411c43f84e595", "name": "Very large file: app/tools/finance/inheritance/InheritanceClient.tsx (1233 lines)", "shortDescription": {"text": "Very large file: app/tools/finance/inheritance/InheritanceClient.tsx (1233 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-d2ee2e10627977d6", "name": "Very large file: app/tools/finance/stock/StockClient.tsx (1183 lines)", "shortDescription": {"text": "Very large file: app/tools/finance/stock/StockClient.tsx (1183 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-4000e181bdd94bf3", "name": "Very large file: app/tools/finance/dividend/DividendClient.tsx (987 lines)", "shortDescription": {"text": "Very large file: app/tools/finance/dividend/DividendClient.tsx (987 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-77c481a608feaac4", "name": "Very large file: app/tools/dev/http-status/httpStatusUtils.ts (1063 lines)", "shortDescription": {"text": "Very large file: app/tools/dev/http-status/httpStatusUtils.ts (1063 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-0ead8077b2aa68de", "name": "Very large file: app/tools/edu/cosmic-calendar/CosmicCalendarClient.tsx (876 lines)", "shortDescription": {"text": "Very large file: app/tools/edu/cosmic-calendar/CosmicCalendarClient.tsx (876 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-4cad83abb47c2942", "name": "Very large file: app/tools/edu/review-interval/ReviewIntervalClient.tsx (1051 lines)", "shortDescription": {"text": "Very large file: app/tools/edu/review-interval/ReviewIntervalClient.tsx (1051 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-f2a981ad9dc2bab4", "name": "Very large file: app/tools/cooking/baker-percent/BakerPercentClient.tsx (1495 lines)", "shortDescription": {"text": "Very large file: app/tools/cooking/baker-percent/BakerPercentClient.tsx (1495 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-f306f3722609f8ee", "name": "Very large file: app/tools/cooking/substitute/SubstituteClient.tsx (906 lines)", "shortDescription": {"text": "Very large file: app/tools/cooking/substitute/SubstituteClient.tsx (906 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-f77adf7f2d8cd5fe", "name": "Very large file: app/tools/art/color/ColorClient.tsx (1270 lines)", "shortDescription": {"text": "Very large file: app/tools/art/color/ColorClient.tsx (1270 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-2982e37be57bcd9f", "name": "Very large file: app/tools/art/lorem/LoremClient.tsx (1229 lines)", "shortDescription": {"text": "Very large file: app/tools/art/lorem/LoremClient.tsx (1229 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "5 test file(s) for 566 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 17 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 467 placeholder/mock markers across 122 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, tests. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d70f7205a9092f5", "name": "Commented-code block (5 lines) in components/AdSlot.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/AdSlot.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-054a8b5ca5f86a8c", "name": "Commented-code block (6 lines) in components/AutoAds.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/AutoAds.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1d11f2eb3b17372", "name": "Commented-code block (6 lines) in app/manifest.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in app/manifest.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-f5020d7f057de27d", "name": "Commented-code block (7 lines) in app/api/produce-price/route.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/produce-price/route.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-f443f9ef746470a2", "name": "Commented-code block (5 lines) in app/api/proxy-time/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/proxy-time/route.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-829fa8ef17695974", "name": "Commented-code block (5 lines) in app/api/og-preview/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/og-preview/route.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-4c212b501b145ac5", "name": "Legacy-named symbol `youtil_viscosity_v1` in app/tools/unit/viscosity/ViscosityClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_viscosity_v1` in app/tools/unit/viscosity/ViscosityClient.tsx:12"}, "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-71ab909378642080", "name": "Legacy-named symbol `youtil_brewing_v1` in app/tools/unit/brewing/BrewingClient.tsx:14", "shortDescription": {"text": "Legacy-named symbol `youtil_brewing_v1` in app/tools/unit/brewing/BrewingClient.tsx:14"}, "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-da288d9571c6c418", "name": "Commented-code block (5 lines) in app/tools/unit/window-tint/WindowTintClient.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/unit/window-tint/WindowTintClient.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98bff4f166c407d3", "name": "Legacy-named symbol `youtil_radiation_v1` in app/tools/unit/radiation/RadiationClient.tsx:13", "shortDescription": {"text": "Legacy-named symbol `youtil_radiation_v1` in app/tools/unit/radiation/RadiationClient.tsx:13"}, "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-e91b116633b952db", "name": "Legacy-named symbol `youtil_hardness_v1` in app/tools/unit/hardness/HardnessClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_hardness_v1` in app/tools/unit/hardness/HardnessClient.tsx:12"}, "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-232e5b25d1244b08", "name": "Commented-code block (5 lines) in app/tools/life/gift-money/giftMoneyData.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/life/gift-money/giftMoneyData.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-74282ee7d5a134af", "name": "Legacy-named symbol `youtil_traveltip_v1` in app/tools/life/travel-tip/TravelTipClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_traveltip_v1` in app/tools/life/travel-tip/TravelTipClient.tsx:17"}, "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-0f29d386d682ddde", "name": "Legacy-named symbol `youtil_customs_v1` in app/tools/life/customs/CustomsClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_customs_v1` in app/tools/life/customs/CustomsClient.tsx:17"}, "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-cc74855b645f6db3", "name": "Commented-code block (6 lines) in app/tools/life/cleaning/cleaningData.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/tools/life/cleaning/cleaningData.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-6fe3b261415eea54", "name": "Commented-code block (6 lines) in app/tools/life/alcohol/alcoholUtils.ts:205", "shortDescription": {"text": "Commented-code block (6 lines) in app/tools/life/alcohol/alcoholUtils.ts:205"}, "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-8f7cc96fa22ce3cf", "name": "Legacy-named symbol `youtil_packing_v1` in app/tools/life/packing/PackingClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_packing_v1` in app/tools/life/packing/PackingClient.tsx:17"}, "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-f96f5c327e2f4517", "name": "Legacy-named symbol `youtil_travelbudget_v1` in app/tools/life/travel-budget/TravelBudgetClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_travelbudget_v1` in app/tools/life/travel-budget/TravelBudgetClient.tsx:17"}, "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-1e9571d5f411f739", "name": "Legacy-named symbol `youtil_bmr_history_v1` in app/tools/health/bmr/bmrUtils.ts:323", "shortDescription": {"text": "Legacy-named symbol `youtil_bmr_history_v1` in app/tools/health/bmr/bmrUtils.ts:323"}, "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-dd7995791a84c899", "name": "Legacy-named symbol `youtil_caffeine_v1` in app/tools/health/caffeine/CaffeineClient.tsx:83", "shortDescription": {"text": "Legacy-named symbol `youtil_caffeine_v1` in app/tools/health/caffeine/CaffeineClient.tsx:83"}, "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-2719a8c3f6560350", "name": "Legacy-named symbol `youtil_bmi_history_v1` in app/tools/health/bmi/bmiUtils.ts:366", "shortDescription": {"text": "Legacy-named symbol `youtil_bmi_history_v1` in app/tools/health/bmi/bmiUtils.ts:366"}, "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-b5a015a75432a6ab", "name": "Legacy-named symbol `youtil_pregnancy_v1` in app/tools/health/pregnancy/pregnancyUtils.ts:294", "shortDescription": {"text": "Legacy-named symbol `youtil_pregnancy_v1` in app/tools/health/pregnancy/pregnancyUtils.ts:294"}, "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-dbd1bc4f76f4f3fa", "name": "Legacy-named symbol `youtil_sleep_debt_v1` in app/tools/health/sleep-debt/SleepDebtClient.tsx:21", "shortDescription": {"text": "Legacy-named symbol `youtil_sleep_debt_v1` in app/tools/health/sleep-debt/SleepDebtClient.tsx:21"}, "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-84628d6992932bc6", "name": "Legacy-named symbol `youtil_vo2max_v1` in app/tools/sports/vo2max/VO2MaxClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_vo2max_v1` in app/tools/sports/vo2max/VO2MaxClient.tsx:16"}, "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-e58d1ac390754709", "name": "Commented-code block (5 lines) in app/tools/sports/race-plan/racePlanUtils.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/sports/race-plan/racePlanUtils.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-fc0a347b20935b53", "name": "Commented-code block (7 lines) in app/tools/sports/one-rm/oneRMUtils.ts:86", "shortDescription": {"text": "Commented-code block (7 lines) in app/tools/sports/one-rm/oneRMUtils.ts:86"}, "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-c5534e8a2fe8ef62", "name": "Legacy-named symbol `youtil_hyrox_v1` in app/tools/sports/hyrox/HyroxClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_hyrox_v1` in app/tools/sports/hyrox/HyroxClient.tsx:12"}, "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-93a4d91be6eb5fb2", "name": "Legacy-named symbol `youtil_grip_size_v1` in app/tools/sports/grip-size/GripSizeClient.tsx:15", "shortDescription": {"text": "Legacy-named symbol `youtil_grip_size_v1` in app/tools/sports/grip-size/GripSizeClient.tsx:15"}, "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-54b03a70d4631b7a", "name": "Commented-code block (6 lines) in app/tools/sports/climbing-grade/climbingData.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/tools/sports/climbing-grade/climbingData.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-edff3f2d50f4739d", "name": "Legacy-named symbol `youtil_formation_v1` in app/tools/sports/formation/FormationClient.tsx:13", "shortDescription": {"text": "Legacy-named symbol `youtil_formation_v1` in app/tools/sports/formation/FormationClient.tsx:13"}, "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-cd22648bbec1344b", "name": "Legacy-named symbol `youtil_bolt_wrench_v1` in app/tools/interior/bolt-wrench/BoltWrenchClient.tsx:19", "shortDescription": {"text": "Legacy-named symbol `youtil_bolt_wrench_v1` in app/tools/interior/bolt-wrench/BoltWrenchClient.tsx:19"}, "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-4b90bc5d3c035e7d", "name": "Legacy-named symbol `youtil_wire_v1` in app/tools/interior/wire/WireClient.tsx:19", "shortDescription": {"text": "Legacy-named symbol `youtil_wire_v1` in app/tools/interior/wire/WireClient.tsx:19"}, "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-c1dc21affa95a992", "name": "Legacy-named symbol `insOld` in app/tools/interior/ac-capacity/AcCapacityClient.tsx:48", "shortDescription": {"text": "Legacy-named symbol `insOld` in app/tools/interior/ac-capacity/AcCapacityClient.tsx:48"}, "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-1f653c140b16b30c", "name": "Legacy-named symbol `youtil_rebar_v1` in app/tools/interior/rebar/RebarClient.tsx:18", "shortDescription": {"text": "Legacy-named symbol `youtil_rebar_v1` in app/tools/interior/rebar/RebarClient.tsx:18"}, "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-73664448c41ef2e0", "name": "Legacy-named symbol `youtil_pipe_v1` in app/tools/interior/pipe/PipeClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_pipe_v1` in app/tools/interior/pipe/PipeClient.tsx:17"}, "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-3fc42e6ea2fc0d4b", "name": "Legacy-named symbol `youtil_severance_v1` in app/tools/finance/severance/SeveranceClient.tsx:20", "shortDescription": {"text": "Legacy-named symbol `youtil_severance_v1` in app/tools/finance/severance/SeveranceClient.tsx:20"}, "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-9e621b407dfe7a72", "name": "Legacy-named symbol `youtil_housing_score_v1` in app/tools/finance/housing-score/HousingScoreClient.tsx:19", "shortDescription": {"text": "Legacy-named symbol `youtil_housing_score_v1` in app/tools/finance/housing-score/HousingScoreClient.tsx:19"}, "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-eaef3a3ce1ebbbdf", "name": "Legacy-named symbol `youtil_auction_v1` in app/tools/finance/auction/AuctionClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_auction_v1` in app/tools/finance/auction/AuctionClient.tsx:16"}, "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-a85e6ab1987c83e7", "name": "Legacy-named symbol `youtil_hist_money_v1` in app/tools/finance/historical-money/HistoricalMoneyClient.tsx:13", "shortDescription": {"text": "Legacy-named symbol `youtil_hist_money_v1` in app/tools/finance/historical-money/HistoricalMoneyClient.tsx:13"}, "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-f94ef62f907a1b48", "name": "Legacy-named symbol `won_old` in app/tools/finance/historical-money/historicalMoneyData.ts:17", "shortDescription": {"text": "Legacy-named symbol `won_old` in app/tools/finance/historical-money/historicalMoneyData.ts:17"}, "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-5bf3bad8ffc1e0e9", "name": "Legacy-named symbol `youtil_savings_v1` in app/tools/finance/savings/SavingsClient.tsx:20", "shortDescription": {"text": "Legacy-named symbol `youtil_savings_v1` in app/tools/finance/savings/SavingsClient.tsx:20"}, "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-aa00bec82a10dbf6", "name": "Legacy-named symbol `youtil_car_tax_v1` in app/tools/finance/car-tax/CarTaxClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_car_tax_v1` in app/tools/finance/car-tax/CarTaxClient.tsx:12"}, "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-a036e598a0b471e7", "name": "Commented-code block (11 lines) in app/tools/finance/wealth-rank/wealthData.ts:8", "shortDescription": {"text": "Commented-code block (11 lines) in app/tools/finance/wealth-rank/wealthData.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-31744be2b11c8bdf", "name": "Legacy-named symbol `youtil_dsr_v1` in app/tools/finance/dsr/DsrClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_dsr_v1` in app/tools/finance/dsr/DsrClient.tsx:12"}, "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-4d0f6970982b29d8", "name": "Legacy-named symbol `youtil_schengen_v1` in app/tools/date/schengen/SchengenClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_schengen_v1` in app/tools/date/schengen/SchengenClient.tsx:17"}, "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-aa456e9000d93589", "name": "Legacy-named symbol `youtil_hash_v1` in app/tools/dev/hash/HashClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_hash_v1` in app/tools/dev/hash/HashClient.tsx:16"}, "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-90cf893dd11b8f82", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/curlUtils.ts:697", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/curlUtils.ts:697"}, "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-0d09b52e498d1eac", "name": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/page.tsx:79", "shortDescription": {"text": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/page.tsx:79"}, "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-2f6767c9f620e036", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/page.tsx:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/page.tsx:70"}, "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-09e144d290794cdf", "name": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/CurlClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/CurlClient.tsx:16"}, "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-393563a9c18fe85a", "name": "Legacy-named symbol `youtil_token_counter_v1` in app/tools/dev/token-counter/TokenCounterClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_token_counter_v1` in app/tools/dev/token-counter/TokenCounterClient.tsx:12"}, "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-0332d4783b4c0f51", "name": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/YamlJsonClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/YamlJsonClient.tsx:16"}, "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-dc9a24f0e644a57a", "name": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/page.tsx:81", "shortDescription": {"text": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/page.tsx:81"}, "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-6534583775aa7057", "name": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/page.tsx:80", "shortDescription": {"text": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/page.tsx:80"}, "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-558215d5768ce53e", "name": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/UrlEncodeClient.tsx:16", "shortDescription": {"text": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/UrlEncodeClient.tsx:16"}, "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-6c69eecbe671a337", "name": "Legacy-named symbol `youtil_regex_v1` in app/tools/dev/regex/RegexClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_regex_v1` in app/tools/dev/regex/RegexClient.tsx:17"}, "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-9e722b7229e882af", "name": "Legacy-named symbol `youtil_og_preview_v1` in app/tools/dev/og-preview/OgPreviewClient.tsx:13", "shortDescription": {"text": "Legacy-named symbol `youtil_og_preview_v1` in app/tools/dev/og-preview/OgPreviewClient.tsx:13"}, "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-b4ee2a8c87a1cc0d", "name": "Legacy-named symbol `youtil_http_status_v1` in app/tools/dev/http-status/HttpStatusClient.tsx:14", "shortDescription": {"text": "Legacy-named symbol `youtil_http_status_v1` in app/tools/dev/http-status/HttpStatusClient.tsx:14"}, "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-ea27182f3dd6b799", "name": "Commented-code block (5 lines) in app/tools/dev/jwt/JwtClient.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/dev/jwt/JwtClient.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d56b7a5a2053a7c4", "name": "Legacy-named symbol `youtil_gpa_v1` in app/tools/edu/gpa-converter/GpaConverterClient.tsx:12", "shortDescription": {"text": "Legacy-named symbol `youtil_gpa_v1` in app/tools/edu/gpa-converter/GpaConverterClient.tsx:12"}, "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-070932e03f4a9999", "name": "Legacy-named symbol `youtil_roommode_v1` in app/tools/edu/room-mode/RoomModeClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_roommode_v1` in app/tools/edu/room-mode/RoomModeClient.tsx:17"}, "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-fa3de741f227b175", "name": "Legacy-named symbol `youtil_tea_v1` in app/tools/cooking/tea/TeaClient.tsx:18", "shortDescription": {"text": "Legacy-named symbol `youtil_tea_v1` in app/tools/cooking/tea/TeaClient.tsx:18"}, "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-2f2d4c7b258428a2", "name": "Legacy-named symbol `youtil_microwave_v1` in app/tools/cooking/microwave/MicrowaveClient.tsx:15", "shortDescription": {"text": "Legacy-named symbol `youtil_microwave_v1` in app/tools/cooking/microwave/MicrowaveClient.tsx:15"}, "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-c86083a4356d631e", "name": "Legacy-named symbol `youtil_holiday_table_v1` in app/tools/cooking/holiday-table/HolidayTableClient.tsx:11", "shortDescription": {"text": "Legacy-named symbol `youtil_holiday_table_v1` in app/tools/cooking/holiday-table/HolidayTableClient.tsx:11"}, "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-ede5536f07bec280", "name": "Legacy-named symbol `youtil_brew_v1` in app/tools/cooking/brew/BrewClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_brew_v1` in app/tools/cooking/brew/BrewClient.tsx:17"}, "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-a7779a8ac33cfaac", "name": "Legacy-named symbol `youtil_scale_v1` in app/tools/art/scale/ScaleClient.tsx:17", "shortDescription": {"text": "Legacy-named symbol `youtil_scale_v1` in app/tools/art/scale/ScaleClient.tsx:17"}, "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-9a83832008cbd2ab", "name": "Legacy-named symbol `youtil_exposure_v2` in app/tools/art/exposure/ExposureClient.tsx:18", "shortDescription": {"text": "Legacy-named symbol `youtil_exposure_v2` in app/tools/art/exposure/ExposureClient.tsx:18"}, "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-343b6948501b8e64", "name": "Legacy-named symbol `youtil_charcount_v1` in app/tools/art/charcount/CharCountClient.tsx:6", "shortDescription": {"text": "Legacy-named symbol `youtil_charcount_v1` in app/tools/art/charcount/CharCountClient.tsx: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-8aa548fed433c019", "name": "Legacy-named symbol `youtil_vocal_range_v1` in app/tools/art/vocal-range/VocalRangeClient.tsx:42", "shortDescription": {"text": "Legacy-named symbol `youtil_vocal_range_v1` in app/tools/art/vocal-range/VocalRangeClient.tsx:42"}, "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-3f75cccb50842944", "name": "Legacy-named symbol `youtil_paint_mix_v1` in app/tools/art/paint-mix/PaintMixClient.tsx:22", "shortDescription": {"text": "Legacy-named symbol `youtil_paint_mix_v1` in app/tools/art/paint-mix/PaintMixClient.tsx:22"}, "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-1357ac08c043a8a6", "name": "Legacy-named symbol `youtil_fov_v1` in app/tools/art/fov/FovClient.tsx:14", "shortDescription": {"text": "Legacy-named symbol `youtil_fov_v1` in app/tools/art/fov/FovClient.tsx:14"}, "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-018e0f62a45a84cb", "name": "Commented-code block (7 lines) in app/tools/art/morse-code/morseData.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/tools/art/morse-code/morseData.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-f6b75f64db1e7b36", "name": "Legacy-named symbol `youtil_knit_gauge_v1` in app/tools/art/knit-gauge/KnitGaugeClient.tsx:18", "shortDescription": {"text": "Legacy-named symbol `youtil_knit_gauge_v1` in app/tools/art/knit-gauge/KnitGaugeClient.tsx:18"}, "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-c68f49d58901f8ca", "name": "Commented-code block (5 lines) in lib/date.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/date.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-8d5ec95c28ae401f", "name": "Commented-code block (6 lines) in lib/categoryGuides.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/categoryGuides.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-56b274b7ceef220a", "name": "Commented-code block (6 lines) in lib/vinDecoder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/vinDecoder.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}}]}}, "automationDetails": {"id": "repobility/18165"}, "properties": {"repository": "riemann-stack/toolify", "repoUrl": "https://github.com/riemann-stack/toolify", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-059f0ebb5194d2e4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/FaqJsonLd.tsx:32"}, "properties": {"repobilityId": "299aa965fc350403", "scanner": "scanner-primary", "fingerprint": "059f0ebb5194d2e4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b4a7f3a5fba46a9d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/SiteJsonLd.tsx:35"}, "properties": {"repobilityId": "dfc8e540a325ea56", "scanner": "scanner-primary", "fingerprint": "b4a7f3a5fba46a9d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5847ceb8e7317d41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/Faq.tsx:22"}, "properties": {"repobilityId": "127fd7d8d2cb1465", "scanner": "scanner-primary", "fingerprint": "5847ceb8e7317d41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-dc85f3f14a00a9a8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/AutoToolJsonLd.tsx:65"}, "properties": {"repobilityId": "bc1d984e57d6c4c3", "scanner": "scanner-primary", "fingerprint": "dc85f3f14a00a9a8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-23e1ca66bc6a7723", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/HomeJsonLd.tsx:26"}, "properties": {"repobilityId": "0856283866925b4d", "scanner": "scanner-primary", "fingerprint": "23e1ca66bc6a7723", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-560558378c21b755", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/tire-pressure/page.tsx:357"}, "properties": {"repobilityId": "0c8bd0839bd628c5", "scanner": "scanner-primary", "fingerprint": "560558378c21b755", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-050b237d2624bd21", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/viscosity/page.tsx:164"}, "properties": {"repobilityId": "f6c7aa2ebe92f0eb", "scanner": "scanner-primary", "fingerprint": "050b237d2624bd21", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f8c452d853a81619", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/fuel-economy/page.tsx:314"}, "properties": {"repobilityId": "f6ec10dca5a6c7bb", "scanner": "scanner-primary", "fingerprint": "f8c452d853a81619", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-db5cefc4b490a1de", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/brewing/page.tsx:141"}, "properties": {"repobilityId": "b277c1478bed15e1", "scanner": "scanner-primary", "fingerprint": "db5cefc4b490a1de", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c660c3d09df0f0da", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/radiation/page.tsx:179"}, "properties": {"repobilityId": "ca4f3c5ce046db59", "scanner": "scanner-primary", "fingerprint": "c660c3d09df0f0da", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1d9e1250e16c6d81", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/hardness/page.tsx:165"}, "properties": {"repobilityId": "bdd49d803a9daa90", "scanner": "scanner-primary", "fingerprint": "1d9e1250e16c6d81", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f74cdba0c4f03939", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/unit/battery/page.tsx:275"}, "properties": {"repobilityId": "f7f64b8f7092b5d8", "scanner": "scanner-primary", "fingerprint": "f74cdba0c4f03939", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-43ae2f11f8757d39", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/gift-money/page.tsx:162"}, "properties": {"repobilityId": "60a3ec6d97a7147c", "scanner": "scanner-primary", "fingerprint": "43ae2f11f8757d39", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e196d59add827fc5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/dutch/page.tsx:234"}, "properties": {"repobilityId": "562f4cca6271727e", "scanner": "scanner-primary", "fingerprint": "e196d59add827fc5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2f9f9da69b1edc0e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/cleaning/page.tsx:165"}, "properties": {"repobilityId": "f47e0bc73f23cf82", "scanner": "scanner-primary", "fingerprint": "2f9f9da69b1edc0e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-810da62ee2b00de1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/laundry-dry/page.tsx:67"}, "properties": {"repobilityId": "03b54cde9c3f3660", "scanner": "scanner-primary", "fingerprint": "810da62ee2b00de1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e5e98ceb8608e7ba", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/random/page.tsx:234"}, "properties": {"repobilityId": "8a9a96230dc1634f", "scanner": "scanner-primary", "fingerprint": "e5e98ceb8608e7ba", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a82eb7e877e7384f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/monty-hall/page.tsx:86"}, "properties": {"repobilityId": "1ae40f1e3a6c94a7", "scanner": "scanner-primary", "fingerprint": "a82eb7e877e7384f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9ad5d9468ccbef28", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/vin-decoder/page.tsx:185"}, "properties": {"repobilityId": "7e6a0ba160625e50", "scanner": "scanner-primary", "fingerprint": "9ad5d9468ccbef28", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-51d56cf467bdb2e1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/lotto/page.tsx:265"}, "properties": {"repobilityId": "84a1a6e754b9e0a2", "scanner": "scanner-primary", "fingerprint": "51d56cf467bdb2e1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-85bb44735843e194", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/ladder/page.tsx:213"}, "properties": {"repobilityId": "370a4bb069a67745", "scanner": "scanner-primary", "fingerprint": "85bb44735843e194", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-36639ad746e7ac41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/life/unit-price/page.tsx:147"}, "properties": {"repobilityId": "7e3617deea805baf", "scanner": "scanner-primary", "fingerprint": "36639ad746e7ac41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d2d50c7c69c650a0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/health/uv-protection/page.tsx:338"}, "properties": {"repobilityId": "09004ebc0c5f2c5f", "scanner": "scanner-primary", "fingerprint": "d2d50c7c69c650a0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c16c64dfd3a8a449", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hiking-time/page.tsx:218"}, "properties": {"repobilityId": "40f97d34434cdcc9", "scanner": "scanner-primary", "fingerprint": "c16c64dfd3a8a449", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-88b45f1c654cd914", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/race-plan/page.tsx:149"}, "properties": {"repobilityId": "c86180b9b46311c5", "scanner": "scanner-primary", "fingerprint": "88b45f1c654cd914", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d6e89648c26a2d64", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/football-points/page.tsx:223"}, "properties": {"repobilityId": "9b09bc7938ecbcb2", "scanner": "scanner-primary", "fingerprint": "d6e89648c26a2d64", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e3f3cc496b5d331f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/interval-training/page.tsx:486"}, "properties": {"repobilityId": "2292057ff7987c72", "scanner": "scanner-primary", "fingerprint": "e3f3cc496b5d331f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7057bff438f17957", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/hyrox/page.tsx:222"}, "properties": {"repobilityId": "dfa4054a40ee282c", "scanner": "scanner-primary", "fingerprint": "7057bff438f17957", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9bcf912216051c5f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/strength-level/page.tsx:238"}, "properties": {"repobilityId": "074e2375504ed13b", "scanner": "scanner-primary", "fingerprint": "9bcf912216051c5f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-46eb77156f1bf1c1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/baseball-stats/page.tsx:227"}, "properties": {"repobilityId": "4c55e050c6fa501f", "scanner": "scanner-primary", "fingerprint": "46eb77156f1bf1c1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f480d2ae1f8471d1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/climbing-grade/page.tsx:245"}, "properties": {"repobilityId": "1b8f1ba870f84e9d", "scanner": "scanner-primary", "fingerprint": "f480d2ae1f8471d1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c4a89215807aa20b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/sports/fight-weight/page.tsx:374"}, "properties": {"repobilityId": "7d6476292db676d8", "scanner": "scanner-primary", "fingerprint": "c4a89215807aa20b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a2fff3c9d8c4e47b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/paint/page.tsx:272"}, "properties": {"repobilityId": "356a0a16058d703d", "scanner": "scanner-primary", "fingerprint": "a2fff3c9d8c4e47b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9e970b05daff0ad4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/flooring/page.tsx:326"}, "properties": {"repobilityId": "60a406a2a21fbaca", "scanner": "scanner-primary", "fingerprint": "9e970b05daff0ad4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6b0b199a4385f438", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/lighting/page.tsx:284"}, "properties": {"repobilityId": "4941aa8f5c7fb708", "scanner": "scanner-primary", "fingerprint": "6b0b199a4385f438", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8def9d12f92abe4f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/molding/page.tsx:265"}, "properties": {"repobilityId": "16fdb279477e5287", "scanner": "scanner-primary", "fingerprint": "8def9d12f92abe4f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-78271cd0d6924276", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/ac-capacity/page.tsx:359"}, "properties": {"repobilityId": "0d8947c64453b39b", "scanner": "scanner-primary", "fingerprint": "78271cd0d6924276", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-dc78631cea6b8fb0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/room-area/page.tsx:276"}, "properties": {"repobilityId": "280fb29a1fffb578", "scanner": "scanner-primary", "fingerprint": "dc78631cea6b8fb0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b078bc9096c7ca4e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/wallpaper/page.tsx:280"}, "properties": {"repobilityId": "ae53c510fab7f92f", "scanner": "scanner-primary", "fingerprint": "b078bc9096c7ca4e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c30f178c5e5bca75", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/interior/curtain-blind/page.tsx:249"}, "properties": {"repobilityId": "dabea0e235571738", "scanner": "scanner-primary", "fingerprint": "c30f178c5e5bca75", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c3a1fcc14874397c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/rent-jeonse/page.tsx:224"}, "properties": {"repobilityId": "9ee60e097a03aaaa", "scanner": "scanner-primary", "fingerprint": "c3a1fcc14874397c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c5c4745e67abf7fc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/real-estate/page.tsx:351"}, "properties": {"repobilityId": "3ae738a9c4f751a8", "scanner": "scanner-primary", "fingerprint": "c5c4745e67abf7fc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1e8b51e435beab7c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/freelance-tax/page.tsx:227"}, "properties": {"repobilityId": "37788d88607809d3", "scanner": "scanner-primary", "fingerprint": "1e8b51e435beab7c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b17583b218ffac59", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/historical-money/page.tsx:131"}, "properties": {"repobilityId": "5fac129865bc0ace", "scanner": "scanner-primary", "fingerprint": "b17583b218ffac59", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-af5dae419683939b", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/savings/page.tsx:215"}, "properties": {"repobilityId": "8d1643492a666e72", "scanner": "scanner-primary", "fingerprint": "af5dae419683939b", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c11f7ffec5337ee4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/4-insurance/page.tsx:298"}, "properties": {"repobilityId": "bfd1f18be69f7886", "scanner": "scanner-primary", "fingerprint": "c11f7ffec5337ee4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-67c25209087e4886", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/wealth-rank/page.tsx:312"}, "properties": {"repobilityId": "60a27d86efb7e19d", "scanner": "scanner-primary", "fingerprint": "67c25209087e4886", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-28401e8076e02ce8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/installment/page.tsx:312"}, "properties": {"repobilityId": "b8eed820d4d1b38e", "scanner": "scanner-primary", "fingerprint": "28401e8076e02ce8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-994ec97bfdc87b49", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/cost-rate/page.tsx:297"}, "properties": {"repobilityId": "fafc01fd41626064", "scanner": "scanner-primary", "fingerprint": "994ec97bfdc87b49", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c0df14fc1565ce0d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/gold-converter/page.tsx:241"}, "properties": {"repobilityId": "d719e8a19df212ab", "scanner": "scanner-primary", "fingerprint": "c0df14fc1565ce0d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c39dc083947e6b58", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/finance/dsr/page.tsx:187"}, "properties": {"repobilityId": "d0c99aabbf11cc6c", "scanner": "scanner-primary", "fingerprint": "c39dc083947e6b58", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bf91aaf4b4ccc96d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/schengen/page.tsx:193"}, "properties": {"repobilityId": "0014f2e86d40dfee", "scanner": "scanner-primary", "fingerprint": "bf91aaf4b4ccc96d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-924871fd975573ed", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/life-time/page.tsx:233"}, "properties": {"repobilityId": "0e96d7d89d8e8eec", "scanner": "scanner-primary", "fingerprint": "924871fd975573ed", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8fd2d58cc1214c70", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/military/page.tsx:315"}, "properties": {"repobilityId": "ade7f0aedd78593f", "scanner": "scanner-primary", "fingerprint": "8fd2d58cc1214c70", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1ee4dfa9a14b5e98", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/dday/page.tsx:225"}, "properties": {"repobilityId": "ec65a64c7537e074", "scanner": "scanner-primary", "fingerprint": "1ee4dfa9a14b5e98", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c720346aa54a5825", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/age/page.tsx:145"}, "properties": {"repobilityId": "0ce3897a9b7921c6", "scanner": "scanner-primary", "fingerprint": "c720346aa54a5825", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-15f4749833bb3dab", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/date/server-time/page.tsx:235"}, "properties": {"repobilityId": "e85ab9dd8fbb7338", "scanner": "scanner-primary", "fingerprint": "15f4749833bb3dab", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-15246c5d6efce4f6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/css-converter/page.tsx:247"}, "properties": {"repobilityId": "06db8cef5dc275e8", "scanner": "scanner-primary", "fingerprint": "15246c5d6efce4f6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-cf73a9e5c08fb089", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/dev/curl/curlUtils.ts:752"}, "properties": {"repobilityId": "7e602c8c7e0f34c0", "scanner": "scanner-primary", "fingerprint": "cf73a9e5c08fb089", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7d08587d00994ec", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/token-counter/page.tsx:194"}, "properties": {"repobilityId": "d650942caaae7130", "scanner": "scanner-primary", "fingerprint": "c7d08587d00994ec", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b9860df7d9faf6d3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/json/page.tsx:263"}, "properties": {"repobilityId": "1d8421802a51a057", "scanner": "scanner-primary", "fingerprint": "b9860df7d9faf6d3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3423139d0a3f57df", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/number-base/page.tsx:345"}, "properties": {"repobilityId": "97c631025d1988be", "scanner": "scanner-primary", "fingerprint": "3423139d0a3f57df", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-01e6d3ed7ce6e91c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/og-preview/page.tsx:175"}, "properties": {"repobilityId": "a9970f9857266b44", "scanner": "scanner-primary", "fingerprint": "01e6d3ed7ce6e91c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-bc1cb0759de878c0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/base64/page.tsx:310"}, "properties": {"repobilityId": "72512beff813a610", "scanner": "scanner-primary", "fingerprint": "bc1cb0759de878c0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-613cec47456c6a48", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/dev/tech-stack/page.tsx:207"}, "properties": {"repobilityId": "bac91e3e65ad1fec", "scanner": "scanner-primary", "fingerprint": "613cec47456c6a48", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-faead68b973fe66e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/fermi-estimate/page.tsx:297"}, "properties": {"repobilityId": "019690a2ae4348ff", "scanner": "scanner-primary", "fingerprint": "faead68b973fe66e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-39d0bc9246901181", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/gpa-converter/page.tsx:187"}, "properties": {"repobilityId": "1df494b222f28f4d", "scanner": "scanner-primary", "fingerprint": "39d0bc9246901181", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c375344b1747be10", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sig-figs/page.tsx:136"}, "properties": {"repobilityId": "d15a2ecda8f82638", "scanner": "scanner-primary", "fingerprint": "c375344b1747be10", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c4f6762cd1b4b40f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cosmic-calendar/page.tsx:272"}, "properties": {"repobilityId": "ee76a321635fa280", "scanner": "scanner-primary", "fingerprint": "c4f6762cd1b4b40f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-ce70c4d2f64f3ea0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sci-units/page.tsx:212"}, "properties": {"repobilityId": "e7d3dade2931e8fd", "scanner": "scanner-primary", "fingerprint": "ce70c4d2f64f3ea0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f6aae2b7f6167e9f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/review-interval/page.tsx:249"}, "properties": {"repobilityId": "3882796a233c2b88", "scanner": "scanner-primary", "fingerprint": "f6aae2b7f6167e9f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fa6a6ff9c722d30e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/cognitive-test/page.tsx:336"}, "properties": {"repobilityId": "6d47a8236966c370", "scanner": "scanner-primary", "fingerprint": "fa6a6ff9c722d30e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-be15e37dddaba398", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/planet-comparison/page.tsx:317"}, "properties": {"repobilityId": "766f8c8fbebb6ac8", "scanner": "scanner-primary", "fingerprint": "be15e37dddaba398", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5ce667b9b678a865", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/sound-speed/page.tsx:343"}, "properties": {"repobilityId": "b46a0b4ce9ab9081", "scanner": "scanner-primary", "fingerprint": "5ce667b9b678a865", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f51b44c5a5534fd7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/page.tsx:323"}, "properties": {"repobilityId": "1683630fc7d543de", "scanner": "scanner-primary", "fingerprint": "f51b44c5a5534fd7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f59d9223a867f2fe", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920"}, "properties": {"repobilityId": "c4c9d2a5acff651a", "scanner": "scanner-primary", "fingerprint": "f59d9223a867f2fe", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-301bc92433a046d7", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baker-percent/page.tsx:306"}, "properties": {"repobilityId": "ccd4fdfccb38634c", "scanner": "scanner-primary", "fingerprint": "301bc92433a046d7", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9787250ef9a69813", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/fruit-syrup/page.tsx:183"}, "properties": {"repobilityId": "4d4e01e93d10df49", "scanner": "scanner-primary", "fingerprint": "9787250ef9a69813", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-01189a2a25aa355e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/egg-timer/page.tsx:226"}, "properties": {"repobilityId": "aa707e18bcafb79a", "scanner": "scanner-primary", "fingerprint": "01189a2a25aa355e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-196accf712dc5ef8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/recipe/page.tsx:240"}, "properties": {"repobilityId": "646a2b637703e7e3", "scanner": "scanner-primary", "fingerprint": "196accf712dc5ef8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3ae87c52e055b987", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/cooking/baking-schedule/page.tsx:234"}, "properties": {"repobilityId": "45fa77c4e8719c50", "scanner": "scanner-primary", "fingerprint": "3ae87c52e055b987", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-108b451c02a4cfb4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/bpm/page.tsx:275"}, "properties": {"repobilityId": "2ba4d7590116874f", "scanner": "scanner-primary", "fingerprint": "108b451c02a4cfb4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-69cfc63d424e13e6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/charcount/page.tsx:246"}, "properties": {"repobilityId": "f2fbb133fb5a6c54", "scanner": "scanner-primary", "fingerprint": "69cfc63d424e13e6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-574ca778b89f3fd3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/frequency/page.tsx:182"}, "properties": {"repobilityId": "61cd372e0d0e36c3", "scanner": "scanner-primary", "fingerprint": "574ca778b89f3fd3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-757b4c38dd8b0bbc", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/chord/page.tsx:240"}, "properties": {"repobilityId": "0cefc8805ca877d5", "scanner": "scanner-primary", "fingerprint": "757b4c38dd8b0bbc", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-65a734ebbda2b4ca", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/color/page.tsx:280"}, "properties": {"repobilityId": "f103551c7a2cfd0d", "scanner": "scanner-primary", "fingerprint": "65a734ebbda2b4ca", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1a68ee0d66e2a7c8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/print-resolution/page.tsx:174"}, "properties": {"repobilityId": "2394e996115a6610", "scanner": "scanner-primary", "fingerprint": "1a68ee0d66e2a7c8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9f51c8afd6ccae1f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/tap-tempo/page.tsx:174"}, "properties": {"repobilityId": "3e33318c76be255f", "scanner": "scanner-primary", "fingerprint": "9f51c8afd6ccae1f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3fa2d39a94b183be", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/morse-code/page.tsx:136"}, "properties": {"repobilityId": "488e8b9d7ba85cce", "scanner": "scanner-primary", "fingerprint": "3fa2d39a94b183be", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3f4486c14850f2ec", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/capo/page.tsx:237"}, "properties": {"repobilityId": "4e56b6cfd54ca566", "scanner": "scanner-primary", "fingerprint": "3f4486c14850f2ec", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-736be9868ae5eaae", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/tools/art/lorem/page.tsx:208"}, "properties": {"repobilityId": "8106e74983487b60", "scanner": "scanner-primary", "fingerprint": "736be9868ae5eaae", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-652c5680a37d04ac", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/add-th-scope.mjs:13"}, "properties": {"repobilityId": "22dff0422e369ba1", "scanner": "scanner-primary", "fingerprint": "652c5680a37d04ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/add-th-scope.mjs"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-38e73289f7165e5c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/fix-related-tools-grid.mjs:8"}, "properties": {"repobilityId": "66760d0f79d5f843", "scanner": "scanner-primary", "fingerprint": "38e73289f7165e5c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix-related-tools-grid.mjs"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-22f065eda0b582d5", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/add-input-labels.mjs:16"}, "properties": {"repobilityId": "bc1dd9430a12c1ff", "scanner": "scanner-primary", "fingerprint": "22f065eda0b582d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/add-input-labels.mjs"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-412bdcf4b4965ec1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/wrap-hover-media.mjs:10"}, "properties": {"repobilityId": "9d040e9448c95f5e", "scanner": "scanner-primary", "fingerprint": "412bdcf4b4965ec1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/wrap-hover-media.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-f0300e872e2cc932", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/FaqJsonLd.tsx:32"}, "properties": {"repobilityId": "df7c7a5ab3842a2a", "scanner": "scanner-primary", "fingerprint": "f0300e872e2cc932", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/FaqJsonLd.tsx"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-2adfd92bbe67ede7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/SiteJsonLd.tsx:35"}, "properties": {"repobilityId": "7ff4fff85e1d11ee", "scanner": "scanner-primary", "fingerprint": "2adfd92bbe67ede7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/SiteJsonLd.tsx"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-bf0f6c8fc76cf3a2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/Faq.tsx:22"}, "properties": {"repobilityId": "2d045ab45e1d0194", "scanner": "scanner-primary", "fingerprint": "bf0f6c8fc76cf3a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/Faq.tsx"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-760aceb832b710ac", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/AutoToolJsonLd.tsx:65"}, "properties": {"repobilityId": "d9217d55b0c9eeaf", "scanner": "scanner-primary", "fingerprint": "760aceb832b710ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/AutoToolJsonLd.tsx"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-dcf5cd6a5ce5ad9c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/HomeJsonLd.tsx:26"}, "properties": {"repobilityId": "9d0e05e23d79fc6e", "scanner": "scanner-primary", "fingerprint": "dcf5cd6a5ce5ad9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/HomeJsonLd.tsx"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-d597e43eae0ab773", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/produce-price/route.ts:66"}, "properties": {"repobilityId": "9d7adda4ae448185", "scanner": "scanner-primary", "fingerprint": "d597e43eae0ab773", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/produce-price/route.ts"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-8d5d1fe46475971c", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/proxy-time/route.ts:38"}, "properties": {"repobilityId": "052253be4f019521", "scanner": "scanner-primary", "fingerprint": "8d5d1fe46475971c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/proxy-time/route.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-2c0907b05f43cf17", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/og-preview/route.ts:27"}, "properties": {"repobilityId": "1f684d76151b7fb4", "scanner": "scanner-primary", "fingerprint": "2c0907b05f43cf17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/og-preview/route.ts"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-f12a68e3ba288c7d", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/disclaimer/page.tsx:214"}, "properties": {"repobilityId": "4998568d66b8de37", "scanner": "scanner-primary", "fingerprint": "f12a68e3ba288c7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/disclaimer/page.tsx"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-a13fa2038b64445a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/tire-pressure/page.tsx:357"}, "properties": {"repobilityId": "bee42ffd94a21fe1", "scanner": "scanner-primary", "fingerprint": "a13fa2038b64445a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/tire-pressure/page.tsx"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-4f02c2f34f961da9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/viscosity/page.tsx:164"}, "properties": {"repobilityId": "35d932f11b4de777", "scanner": "scanner-primary", "fingerprint": "4f02c2f34f961da9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/viscosity/page.tsx"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-da68605fbdce5e58", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/fuel-economy/page.tsx:314"}, "properties": {"repobilityId": "19c23175710d434b", "scanner": "scanner-primary", "fingerprint": "da68605fbdce5e58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/fuel-economy/page.tsx"}, "region": {"startLine": 314}}}]}, {"ruleId": "scanner-19165d115874f51e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/brewing/page.tsx:141"}, "properties": {"repobilityId": "53881dbe838db14f", "scanner": "scanner-primary", "fingerprint": "19165d115874f51e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/brewing/page.tsx"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-e6b2f52a27bfc4bd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/radiation/page.tsx:179"}, "properties": {"repobilityId": "b3ac3d44f2936d12", "scanner": "scanner-primary", "fingerprint": "e6b2f52a27bfc4bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/radiation/page.tsx"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-0788aa0186fe7613", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/hardness/page.tsx:165"}, "properties": {"repobilityId": "b9158732451557cc", "scanner": "scanner-primary", "fingerprint": "0788aa0186fe7613", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/hardness/page.tsx"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-20e7ca6f4dc97995", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/unit/battery/page.tsx:275"}, "properties": {"repobilityId": "90742b92f4ebe56b", "scanner": "scanner-primary", "fingerprint": "20e7ca6f4dc97995", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/unit/battery/page.tsx"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-241daa22b6f137e2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/gift-money/page.tsx:162"}, "properties": {"repobilityId": "79a36c9e59d69fba", "scanner": "scanner-primary", "fingerprint": "241daa22b6f137e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/gift-money/page.tsx"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-d7af46613dfe8ec3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/dutch/page.tsx:234"}, "properties": {"repobilityId": "562a77157a9f99ef", "scanner": "scanner-primary", "fingerprint": "d7af46613dfe8ec3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/dutch/page.tsx"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-1e2c13c1e8423aa1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/cleaning/page.tsx:165"}, "properties": {"repobilityId": "b0c280c42329f1b2", "scanner": "scanner-primary", "fingerprint": "1e2c13c1e8423aa1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/cleaning/page.tsx"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-9132d90e5cc17986", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/laundry-dry/page.tsx:67"}, "properties": {"repobilityId": "5cf69b7918a490ae", "scanner": "scanner-primary", "fingerprint": "9132d90e5cc17986", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/laundry-dry/page.tsx"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-7e3b1d8f7b6d9509", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/random/page.tsx:234"}, "properties": {"repobilityId": "3a6e8b018e35162a", "scanner": "scanner-primary", "fingerprint": "7e3b1d8f7b6d9509", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/random/page.tsx"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-0a65fc3e2e5819d0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/monty-hall/page.tsx:86"}, "properties": {"repobilityId": "9b10ceac2f7d524f", "scanner": "scanner-primary", "fingerprint": "0a65fc3e2e5819d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/monty-hall/page.tsx"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-cefed3a2bda7c15a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/vin-decoder/page.tsx:185"}, "properties": {"repobilityId": "73d110270de2d355", "scanner": "scanner-primary", "fingerprint": "cefed3a2bda7c15a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/vin-decoder/page.tsx"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-a228d0ba4197ccd8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/lotto/page.tsx:265"}, "properties": {"repobilityId": "db7e47c6928fce6f", "scanner": "scanner-primary", "fingerprint": "a228d0ba4197ccd8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/lotto/page.tsx"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-9eb9a26356eb0e1f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/ladder/page.tsx:213"}, "properties": {"repobilityId": "40202901b9c05014", "scanner": "scanner-primary", "fingerprint": "9eb9a26356eb0e1f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/ladder/page.tsx"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-03cd778582219a0c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/life/unit-price/page.tsx:147"}, "properties": {"repobilityId": "cd268324ca2c3085", "scanner": "scanner-primary", "fingerprint": "03cd778582219a0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/life/unit-price/page.tsx"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-4af10c0ea1ba5df2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/health/uv-protection/page.tsx:338"}, "properties": {"repobilityId": "0e6f205fe9a7ed65", "scanner": "scanner-primary", "fingerprint": "4af10c0ea1ba5df2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/health/uv-protection/page.tsx"}, "region": {"startLine": 338}}}]}, {"ruleId": "scanner-7a1f707f85933453", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hiking-time/page.tsx:218"}, "properties": {"repobilityId": "6ea708745a6ffda1", "scanner": "scanner-primary", "fingerprint": "7a1f707f85933453", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/hiking-time/page.tsx"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-3464849e58f782aa", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/race-plan/page.tsx:149"}, "properties": {"repobilityId": "47df00c0387c2d83", "scanner": "scanner-primary", "fingerprint": "3464849e58f782aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/race-plan/page.tsx"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-68c8e5ab5282d3e0", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/football-points/page.tsx:223"}, "properties": {"repobilityId": "9508918ac4cbd681", "scanner": "scanner-primary", "fingerprint": "68c8e5ab5282d3e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/football-points/page.tsx"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-35c32bbd5fb26e36", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/interval-training/page.tsx:486"}, "properties": {"repobilityId": "ab8e9dfc7f5baa38", "scanner": "scanner-primary", "fingerprint": "35c32bbd5fb26e36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/interval-training/page.tsx"}, "region": {"startLine": 486}}}]}, {"ruleId": "scanner-727b11014cdd6867", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/hyrox/page.tsx:222"}, "properties": {"repobilityId": "0881119c87f0f3e2", "scanner": "scanner-primary", "fingerprint": "727b11014cdd6867", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/hyrox/page.tsx"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-ca373a69482209cf", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/strength-level/page.tsx:238"}, "properties": {"repobilityId": "c49c464b3fbb2862", "scanner": "scanner-primary", "fingerprint": "ca373a69482209cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/strength-level/page.tsx"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-1c3cc9cca304c5e5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/baseball-stats/page.tsx:227"}, "properties": {"repobilityId": "b2e5cc23c288419f", "scanner": "scanner-primary", "fingerprint": "1c3cc9cca304c5e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/baseball-stats/page.tsx"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-0637926427681d9f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/climbing-grade/page.tsx:245"}, "properties": {"repobilityId": "dc107b0af80b5972", "scanner": "scanner-primary", "fingerprint": "0637926427681d9f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/climbing-grade/page.tsx"}, "region": {"startLine": 245}}}]}, {"ruleId": "scanner-a1f47a09b9d48a19", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/sports/fight-weight/page.tsx:374"}, "properties": {"repobilityId": "c38ee4db65a4e299", "scanner": "scanner-primary", "fingerprint": "a1f47a09b9d48a19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/sports/fight-weight/page.tsx"}, "region": {"startLine": 374}}}]}, {"ruleId": "scanner-41b4b6b06be1fc8c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/paint/page.tsx:272"}, "properties": {"repobilityId": "38ad89bc82f942db", "scanner": "scanner-primary", "fingerprint": "41b4b6b06be1fc8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/paint/page.tsx"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-21718afa5c8cc6fd", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/flooring/page.tsx:326"}, "properties": {"repobilityId": "88f50cf57f383949", "scanner": "scanner-primary", "fingerprint": "21718afa5c8cc6fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/flooring/page.tsx"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-e8c15c2aeb3b9a35", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/lighting/page.tsx:284"}, "properties": {"repobilityId": "5533a1b03ce52aa8", "scanner": "scanner-primary", "fingerprint": "e8c15c2aeb3b9a35", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/lighting/page.tsx"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-c20a09c8983d7c19", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/molding/page.tsx:265"}, "properties": {"repobilityId": "66683710fdee8ee9", "scanner": "scanner-primary", "fingerprint": "c20a09c8983d7c19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/molding/page.tsx"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-247ec93e6f591661", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/ac-capacity/page.tsx:359"}, "properties": {"repobilityId": "da4b5e563316282c", "scanner": "scanner-primary", "fingerprint": "247ec93e6f591661", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/ac-capacity/page.tsx"}, "region": {"startLine": 359}}}]}, {"ruleId": "scanner-d2c3ae1eb13e4677", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/room-area/page.tsx:276"}, "properties": {"repobilityId": "ac5cde43ce4e45ed", "scanner": "scanner-primary", "fingerprint": "d2c3ae1eb13e4677", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/room-area/page.tsx"}, "region": {"startLine": 276}}}]}, {"ruleId": "scanner-390c9a8f30874d6a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/wallpaper/page.tsx:280"}, "properties": {"repobilityId": "2cf4556b2092a617", "scanner": "scanner-primary", "fingerprint": "390c9a8f30874d6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/wallpaper/page.tsx"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-ad4fe9b5c672821b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/interior/curtain-blind/page.tsx:249"}, "properties": {"repobilityId": "ecadd594ad8e69d9", "scanner": "scanner-primary", "fingerprint": "ad4fe9b5c672821b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/interior/curtain-blind/page.tsx"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-3d170058a4111e16", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/rent-jeonse/page.tsx:224"}, "properties": {"repobilityId": "cec9d27157e035fa", "scanner": "scanner-primary", "fingerprint": "3d170058a4111e16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/rent-jeonse/page.tsx"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-a9cde9dfff4dea61", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/real-estate/page.tsx:351"}, "properties": {"repobilityId": "8d33c5e930eedb45", "scanner": "scanner-primary", "fingerprint": "a9cde9dfff4dea61", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/real-estate/page.tsx"}, "region": {"startLine": 351}}}]}, {"ruleId": "scanner-ac20a872c84051be", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/freelance-tax/page.tsx:227"}, "properties": {"repobilityId": "83b1571c0f56c073", "scanner": "scanner-primary", "fingerprint": "ac20a872c84051be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/freelance-tax/page.tsx"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-756bd426cc41555e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/historical-money/page.tsx:131"}, "properties": {"repobilityId": "1a5aa04dcd74438e", "scanner": "scanner-primary", "fingerprint": "756bd426cc41555e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/historical-money/page.tsx"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-de78fee7d01ac578", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/savings/page.tsx:215"}, "properties": {"repobilityId": "5b1f67223f85a7ea", "scanner": "scanner-primary", "fingerprint": "de78fee7d01ac578", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/savings/page.tsx"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-db4e904d2e5fb71c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/4-insurance/page.tsx:298"}, "properties": {"repobilityId": "ddff12eaee111b4c", "scanner": "scanner-primary", "fingerprint": "db4e904d2e5fb71c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/4-insurance/page.tsx"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-1fdcc990f6260ee9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/wealth-rank/page.tsx:312"}, "properties": {"repobilityId": "3b3866125112402a", "scanner": "scanner-primary", "fingerprint": "1fdcc990f6260ee9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/wealth-rank/page.tsx"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-e7e7b2e6b8239941", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/installment/page.tsx:312"}, "properties": {"repobilityId": "b33c463bae9433b3", "scanner": "scanner-primary", "fingerprint": "e7e7b2e6b8239941", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/installment/page.tsx"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-bd533466d3d4bea7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/cost-rate/page.tsx:297"}, "properties": {"repobilityId": "f0ea943c3f1b403a", "scanner": "scanner-primary", "fingerprint": "bd533466d3d4bea7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/cost-rate/page.tsx"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-d35ffe05d3a69c38", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/gold-converter/page.tsx:241"}, "properties": {"repobilityId": "1ac3e0d9b3b2cd4e", "scanner": "scanner-primary", "fingerprint": "d35ffe05d3a69c38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/gold-converter/page.tsx"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-e264c750afeb8b23", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/finance/dsr/page.tsx:187"}, "properties": {"repobilityId": "3b6bebe03d94a506", "scanner": "scanner-primary", "fingerprint": "e264c750afeb8b23", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/finance/dsr/page.tsx"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-3cc75da73fa682f6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/schengen/page.tsx:193"}, "properties": {"repobilityId": "cbcb8fa842031f51", "scanner": "scanner-primary", "fingerprint": "3cc75da73fa682f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/schengen/page.tsx"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-26198525d605812b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/life-time/page.tsx:233"}, "properties": {"repobilityId": "4e098aa1e1a2eb6b", "scanner": "scanner-primary", "fingerprint": "26198525d605812b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/life-time/page.tsx"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-17aceffbe918d741", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/military/page.tsx:315"}, "properties": {"repobilityId": "307585c071bf4231", "scanner": "scanner-primary", "fingerprint": "17aceffbe918d741", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/military/page.tsx"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-d54ff4c77ca9464b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/dday/page.tsx:225"}, "properties": {"repobilityId": "fb3ecfe59ee41d68", "scanner": "scanner-primary", "fingerprint": "d54ff4c77ca9464b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/dday/page.tsx"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-b40cf56b4128b3fb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/age/page.tsx:145"}, "properties": {"repobilityId": "7894983224bce0a2", "scanner": "scanner-primary", "fingerprint": "b40cf56b4128b3fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/age/page.tsx"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-79962e0e4e894f62", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/date/server-time/page.tsx:235"}, "properties": {"repobilityId": "2c6c9e5fd9266c80", "scanner": "scanner-primary", "fingerprint": "79962e0e4e894f62", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/date/server-time/page.tsx"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-7d1f57943b1d9089", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/HashClient.tsx:494"}, "properties": {"repobilityId": "6a2d965a1d2fc833", "scanner": "scanner-primary", "fingerprint": "7d1f57943b1d9089", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/hash/HashClient.tsx"}, "region": {"startLine": 494}}}]}, {"ruleId": "scanner-472413f9d41a8c20", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/page.tsx:9"}, "properties": {"repobilityId": "7a65b89c1a41479f", "scanner": "scanner-primary", "fingerprint": "472413f9d41a8c20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/hash/page.tsx"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-01c5f56de69403a1", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/hash/hashUtils.ts:2"}, "properties": {"repobilityId": "b0f502ed51b8f203", "scanner": "scanner-primary", "fingerprint": "01c5f56de69403a1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/hash/hashUtils.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-1ff15154509fe36f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/css-converter/page.tsx:247"}, "properties": {"repobilityId": "1062a67b10e1ff89", "scanner": "scanner-primary", "fingerprint": "1ff15154509fe36f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/css-converter/page.tsx"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-88800fdf47f2a7c2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/token-counter/page.tsx:194"}, "properties": {"repobilityId": "cb8ad89a35a2eba6", "scanner": "scanner-primary", "fingerprint": "88800fdf47f2a7c2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/token-counter/page.tsx"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-50e7ed881f8144c4", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/yaml-json/page.tsx:392"}, "properties": {"repobilityId": "6a1696c008f00b28", "scanner": "scanner-primary", "fingerprint": "50e7ed881f8144c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/yaml-json/page.tsx"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-2b7880bd47487d2d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/json/page.tsx:263"}, "properties": {"repobilityId": "338ca0d62406ab1e", "scanner": "scanner-primary", "fingerprint": "2b7880bd47487d2d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/json/page.tsx"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-11182a7fba535007", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/number-base/page.tsx:345"}, "properties": {"repobilityId": "de2e9aaffb6ee0da", "scanner": "scanner-primary", "fingerprint": "11182a7fba535007", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/number-base/page.tsx"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-7c637dc6055127b5", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/regex/page.tsx:434"}, "properties": {"repobilityId": "bf29f45f74ff631c", "scanner": "scanner-primary", "fingerprint": "7c637dc6055127b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/regex/page.tsx"}, "region": {"startLine": 434}}}]}, {"ruleId": "scanner-f92190f90b482df4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/og-preview/page.tsx:175"}, "properties": {"repobilityId": "4d1f3c930ef1749c", "scanner": "scanner-primary", "fingerprint": "f92190f90b482df4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/og-preview/page.tsx"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-370f5808c90ff5b7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/tools/dev/http-status/httpStatusUtils.ts:845"}, "properties": {"repobilityId": "64679085ac4af5e0", "scanner": "scanner-primary", "fingerprint": "370f5808c90ff5b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/http-status/httpStatusUtils.ts"}, "region": {"startLine": 845}}}]}, {"ruleId": "scanner-5229297866e8548c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/base64/page.tsx:310"}, "properties": {"repobilityId": "0a82b3aad6d2524a", "scanner": "scanner-primary", "fingerprint": "5229297866e8548c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/base64/page.tsx"}, "region": {"startLine": 310}}}]}, {"ruleId": "scanner-81df8da4425b2e3e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/dev/tech-stack/page.tsx:207"}, "properties": {"repobilityId": "7ed4d799ba7c9156", "scanner": "scanner-primary", "fingerprint": "81df8da4425b2e3e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/tech-stack/page.tsx"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-2c26d6ab7e205919", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in app/tools/dev/tech-stack/page.tsx:225"}, "properties": {"repobilityId": "722bc5142b8b5feb", "scanner": "scanner-primary", "fingerprint": "2c26d6ab7e205919", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/dev/tech-stack/page.tsx"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-6a3d9131b47222de", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/fermi-estimate/page.tsx:297"}, "properties": {"repobilityId": "9b973c449aa682f8", "scanner": "scanner-primary", "fingerprint": "6a3d9131b47222de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/fermi-estimate/page.tsx"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-0165f7ac79875dc4", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in app/tools/edu/fermi-estimate/FermiEstimateClient.tsx:192"}, "properties": {"repobilityId": "d01c353652efd7a9", "scanner": "scanner-primary", "fingerprint": "0165f7ac79875dc4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/fermi-estimate/FermiEstimateClient.tsx"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-92d0aed781bf1309", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/gpa-converter/page.tsx:187"}, "properties": {"repobilityId": "c185c717cdf6f47d", "scanner": "scanner-primary", "fingerprint": "92d0aed781bf1309", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/gpa-converter/page.tsx"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-4fb1a9cc5191c8a9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sig-figs/page.tsx:136"}, "properties": {"repobilityId": "2c6aa7fca9bd32ac", "scanner": "scanner-primary", "fingerprint": "4fb1a9cc5191c8a9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/sig-figs/page.tsx"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-e708ccc8621560e5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/cosmic-calendar/page.tsx:272"}, "properties": {"repobilityId": "44d091545df6e478", "scanner": "scanner-primary", "fingerprint": "e708ccc8621560e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/cosmic-calendar/page.tsx"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-f59da3c555d2e249", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sci-units/page.tsx:212"}, "properties": {"repobilityId": "3fe57780cd9ee9ac", "scanner": "scanner-primary", "fingerprint": "f59da3c555d2e249", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/sci-units/page.tsx"}, "region": {"startLine": 212}}}]}, {"ruleId": "scanner-3df73fa167b6a01b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/review-interval/page.tsx:249"}, "properties": {"repobilityId": "f54988a8aaddf4f3", "scanner": "scanner-primary", "fingerprint": "3df73fa167b6a01b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/review-interval/page.tsx"}, "region": {"startLine": 249}}}]}, {"ruleId": "scanner-dda79218930f83f9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/planet-comparison/page.tsx:317"}, "properties": {"repobilityId": "f8499185195bcc23", "scanner": "scanner-primary", "fingerprint": "dda79218930f83f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/planet-comparison/page.tsx"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-6cf581cd94f75053", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/sound-speed/page.tsx:343"}, "properties": {"repobilityId": "da58a70ac8046205", "scanner": "scanner-primary", "fingerprint": "6cf581cd94f75053", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/sound-speed/page.tsx"}, "region": {"startLine": 343}}}]}, {"ruleId": "scanner-5b68b68883db1186", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/page.tsx:323"}, "properties": {"repobilityId": "01ffcc29e63b9c7e", "scanner": "scanner-primary", "fingerprint": "5b68b68883db1186", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/circuit-simulator/page.tsx"}, "region": {"startLine": 323}}}]}, {"ruleId": "scanner-247601b49282013a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx:920"}, "properties": {"repobilityId": "c4e1a08533c9cd38", "scanner": "scanner-primary", "fingerprint": "247601b49282013a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/edu/circuit-simulator/CircuitSimulatorClient.tsx"}, "region": {"startLine": 920}}}]}, {"ruleId": "scanner-fa357645a41e782c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baker-percent/page.tsx:306"}, "properties": {"repobilityId": "e72ad7717894410c", "scanner": "scanner-primary", "fingerprint": "fa357645a41e782c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/cooking/baker-percent/page.tsx"}, "region": {"startLine": 306}}}]}, {"ruleId": "scanner-47fe36fd6e7ee644", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/fruit-syrup/page.tsx:183"}, "properties": {"repobilityId": "eab1db5ffe050ab1", "scanner": "scanner-primary", "fingerprint": "47fe36fd6e7ee644", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/cooking/fruit-syrup/page.tsx"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-dac26b142cbb0bd3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/egg-timer/page.tsx:226"}, "properties": {"repobilityId": "79dfdd64c3db0c54", "scanner": "scanner-primary", "fingerprint": "dac26b142cbb0bd3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/cooking/egg-timer/page.tsx"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-2b7826e50c667501", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/recipe/page.tsx:240"}, "properties": {"repobilityId": "7a2717ce8e40e0f1", "scanner": "scanner-primary", "fingerprint": "2b7826e50c667501", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/cooking/recipe/page.tsx"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-b77d362bf0a87159", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/cooking/baking-schedule/page.tsx:234"}, "properties": {"repobilityId": "ae9f10bbe20e8712", "scanner": "scanner-primary", "fingerprint": "b77d362bf0a87159", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/cooking/baking-schedule/page.tsx"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-83aa3f2deb11850e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/bpm/page.tsx:275"}, "properties": {"repobilityId": "1555cf611ce1e494", "scanner": "scanner-primary", "fingerprint": "83aa3f2deb11850e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/bpm/page.tsx"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-ccc6ed44ef1bb5ab", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/charcount/page.tsx:246"}, "properties": {"repobilityId": "3d28c36da206f9a7", "scanner": "scanner-primary", "fingerprint": "ccc6ed44ef1bb5ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/charcount/page.tsx"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-27c250876a4afd86", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/frequency/page.tsx:182"}, "properties": {"repobilityId": "5ed84b307104baaa", "scanner": "scanner-primary", "fingerprint": "27c250876a4afd86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/frequency/page.tsx"}, "region": {"startLine": 182}}}]}, {"ruleId": "scanner-80863ce143b9388b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/chord/page.tsx:240"}, "properties": {"repobilityId": "df0b440c43adcf7d", "scanner": "scanner-primary", "fingerprint": "80863ce143b9388b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/chord/page.tsx"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-35cce04b805e5b83", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/color/page.tsx:280"}, "properties": {"repobilityId": "e4b92f76a3c04294", "scanner": "scanner-primary", "fingerprint": "35cce04b805e5b83", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/color/page.tsx"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-ba6ebf9093628aab", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/print-resolution/page.tsx:174"}, "properties": {"repobilityId": "881cb63332c6164e", "scanner": "scanner-primary", "fingerprint": "ba6ebf9093628aab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/print-resolution/page.tsx"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-c13a7a3549813f6e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/tap-tempo/page.tsx:174"}, "properties": {"repobilityId": "e8027fd449eaac99", "scanner": "scanner-primary", "fingerprint": "c13a7a3549813f6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/tap-tempo/page.tsx"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-2948c14ea6c3d434", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/morse-code/page.tsx:136"}, "properties": {"repobilityId": "32613ec9bf452ee8", "scanner": "scanner-primary", "fingerprint": "2948c14ea6c3d434", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/morse-code/page.tsx"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-c2961400e6a8a8aa", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/capo/page.tsx:237"}, "properties": {"repobilityId": "0cf445915f98f4b8", "scanner": "scanner-primary", "fingerprint": "c2961400e6a8a8aa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/capo/page.tsx"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-0a32fa281d81a833", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/tools/art/lorem/page.tsx:208"}, "properties": {"repobilityId": "dc4af5a904addaba", "scanner": "scanner-primary", "fingerprint": "0a32fa281d81a833", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/tools/art/lorem/page.tsx"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-0209502a455dc1b0", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in lib/collections.ts:202"}, "properties": {"repobilityId": "0752b1bae8bd60df", "scanner": "scanner-primary", "fingerprint": "0209502a455dc1b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/collections.ts"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-f19b71e1258d642a", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in lib/tools.ts:246"}, "properties": {"repobilityId": "800b575c180c1037", "scanner": "scanner-primary", "fingerprint": "f19b71e1258d642a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/tools.ts"}, "region": {"startLine": 246}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-493344fab68b4278", "level": "note", "message": {"text": "Very large file: app/tools/health/supplement/SupplementClient.tsx (1173 lines)"}, "properties": {"repobilityId": "63e901d2c678baab", "scanner": "scanner-primary", "fingerprint": "493344fab68b4278", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6801effb16c6a336", "level": "note", "message": {"text": "Very large file: app/tools/health/blood-alcohol/BloodAlcoholClient.tsx (1255 lines)"}, "properties": {"repobilityId": "75288ad51cc81263", "scanner": "scanner-primary", "fingerprint": "6801effb16c6a336", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1236c082c2ca3d45", "level": "note", "message": {"text": "Very large file: app/tools/sports/one-rm/OneRMClient.tsx (1318 lines)"}, "properties": {"repobilityId": "b406f80eae7a8c53", "scanner": "scanner-primary", "fingerprint": "1236c082c2ca3d45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-93e480a95b1d2995", "level": "note", "message": {"text": "Very large file: app/tools/sports/interval-training/IntervalTrainingClient.tsx (1300 lines)"}, "properties": {"repobilityId": "1095188778e39e82", "scanner": "scanner-primary", "fingerprint": "93e480a95b1d2995", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b733157ff23b0266", "level": "note", "message": {"text": "Very large file: app/tools/interior/paint/PaintClient.tsx (1171 lines)"}, "properties": {"repobilityId": "f86a76c38b531e66", "scanner": "scanner-primary", "fingerprint": "b733157ff23b0266", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-00bb93fea26b96f8", "level": "note", "message": {"text": "Very large file: app/tools/finance/car-cost/CarCostClient.tsx (1113 lines)"}, "properties": {"repobilityId": "b012c25f55762575", "scanner": "scanner-primary", "fingerprint": "00bb93fea26b96f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ec9411c43f84e595", "level": "note", "message": {"text": "Very large file: app/tools/finance/inheritance/InheritanceClient.tsx (1233 lines)"}, "properties": {"repobilityId": "8e84ece13bc293e7", "scanner": "scanner-primary", "fingerprint": "ec9411c43f84e595", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2ee2e10627977d6", "level": "note", "message": {"text": "Very large file: app/tools/finance/stock/StockClient.tsx (1183 lines)"}, "properties": {"repobilityId": "5fe2ac80976f345a", "scanner": "scanner-primary", "fingerprint": "d2ee2e10627977d6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4000e181bdd94bf3", "level": "note", "message": {"text": "Very large file: app/tools/finance/dividend/DividendClient.tsx (987 lines)"}, "properties": {"repobilityId": "202ce9caff23d7ff", "scanner": "scanner-primary", "fingerprint": "4000e181bdd94bf3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77c481a608feaac4", "level": "note", "message": {"text": "Very large file: app/tools/dev/http-status/httpStatusUtils.ts (1063 lines)"}, "properties": {"repobilityId": "ccb9957c37328d63", "scanner": "scanner-primary", "fingerprint": "77c481a608feaac4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0ead8077b2aa68de", "level": "note", "message": {"text": "Very large file: app/tools/edu/cosmic-calendar/CosmicCalendarClient.tsx (876 lines)"}, "properties": {"repobilityId": "bdd6b1156b384127", "scanner": "scanner-primary", "fingerprint": "0ead8077b2aa68de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4cad83abb47c2942", "level": "note", "message": {"text": "Very large file: app/tools/edu/review-interval/ReviewIntervalClient.tsx (1051 lines)"}, "properties": {"repobilityId": "335578bee3edb438", "scanner": "scanner-primary", "fingerprint": "4cad83abb47c2942", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2a981ad9dc2bab4", "level": "note", "message": {"text": "Very large file: app/tools/cooking/baker-percent/BakerPercentClient.tsx (1495 lines)"}, "properties": {"repobilityId": "ed082d426624c9e6", "scanner": "scanner-primary", "fingerprint": "f2a981ad9dc2bab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f306f3722609f8ee", "level": "note", "message": {"text": "Very large file: app/tools/cooking/substitute/SubstituteClient.tsx (906 lines)"}, "properties": {"repobilityId": "af0db1f34a70d26b", "scanner": "scanner-primary", "fingerprint": "f306f3722609f8ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f77adf7f2d8cd5fe", "level": "note", "message": {"text": "Very large file: app/tools/art/color/ColorClient.tsx (1270 lines)"}, "properties": {"repobilityId": "7688effa84827f14", "scanner": "scanner-primary", "fingerprint": "f77adf7f2d8cd5fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2982e37be57bcd9f", "level": "note", "message": {"text": "Very large file: app/tools/art/lorem/LoremClient.tsx (1229 lines)"}, "properties": {"repobilityId": "592f1e14881122ce", "scanner": "scanner-primary", "fingerprint": "2982e37be57bcd9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "81af8662aa494280", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "de2556cd0fb9ea5c", "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": "6a0305b59771d086", "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": "d874a5c671d981b1", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "dd06a32de6a116b1", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "0fd7b9689b65355c", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "c5c4a373f954560b", "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": "85d7e41112c55951", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d70f7205a9092f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/AdSlot.tsx:1"}, "properties": {"repobilityId": "eca185aea61c012d", "scanner": "scanner-primary", "fingerprint": "6d70f7205a9092f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-054a8b5ca5f86a8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/AutoAds.tsx:1"}, "properties": {"repobilityId": "1a2e9bbf8e0c0516", "scanner": "scanner-primary", "fingerprint": "054a8b5ca5f86a8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1d11f2eb3b17372", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/manifest.ts:3"}, "properties": {"repobilityId": "e50da4e6f4c920dd", "scanner": "scanner-primary", "fingerprint": "c1d11f2eb3b17372", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5020d7f057de27d", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/produce-price/route.ts:1"}, "properties": {"repobilityId": "57bc94b3c0be20ee", "scanner": "scanner-primary", "fingerprint": "f5020d7f057de27d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f443f9ef746470a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/proxy-time/route.ts:1"}, "properties": {"repobilityId": "99b787adad5f373b", "scanner": "scanner-primary", "fingerprint": "f443f9ef746470a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-829fa8ef17695974", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/og-preview/route.ts:1"}, "properties": {"repobilityId": "1fba72291d13976b", "scanner": "scanner-primary", "fingerprint": "829fa8ef17695974", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c212b501b145ac5", "level": "note", "message": {"text": "Legacy-named symbol `youtil_viscosity_v1` in app/tools/unit/viscosity/ViscosityClient.tsx:12"}, "properties": {"repobilityId": "68414449d8f33ac6", "scanner": "scanner-primary", "fingerprint": "4c212b501b145ac5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-71ab909378642080", "level": "note", "message": {"text": "Legacy-named symbol `youtil_brewing_v1` in app/tools/unit/brewing/BrewingClient.tsx:14"}, "properties": {"repobilityId": "00bce3662e9544cb", "scanner": "scanner-primary", "fingerprint": "71ab909378642080", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da288d9571c6c418", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/unit/window-tint/WindowTintClient.tsx:6"}, "properties": {"repobilityId": "3bb226eefaa5a7f8", "scanner": "scanner-primary", "fingerprint": "da288d9571c6c418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98bff4f166c407d3", "level": "note", "message": {"text": "Legacy-named symbol `youtil_radiation_v1` in app/tools/unit/radiation/RadiationClient.tsx:13"}, "properties": {"repobilityId": "6391795d723f5b54", "scanner": "scanner-primary", "fingerprint": "98bff4f166c407d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e91b116633b952db", "level": "note", "message": {"text": "Legacy-named symbol `youtil_hardness_v1` in app/tools/unit/hardness/HardnessClient.tsx:12"}, "properties": {"repobilityId": "7537e316d472003b", "scanner": "scanner-primary", "fingerprint": "e91b116633b952db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-232e5b25d1244b08", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/life/gift-money/giftMoneyData.ts:1"}, "properties": {"repobilityId": "4c33238fb93fbfab", "scanner": "scanner-primary", "fingerprint": "232e5b25d1244b08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74282ee7d5a134af", "level": "note", "message": {"text": "Legacy-named symbol `youtil_traveltip_v1` in app/tools/life/travel-tip/TravelTipClient.tsx:17"}, "properties": {"repobilityId": "f9f9f65f061732b2", "scanner": "scanner-primary", "fingerprint": "74282ee7d5a134af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f29d386d682ddde", "level": "note", "message": {"text": "Legacy-named symbol `youtil_customs_v1` in app/tools/life/customs/CustomsClient.tsx:17"}, "properties": {"repobilityId": "ef998db5b84184fb", "scanner": "scanner-primary", "fingerprint": "0f29d386d682ddde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cc74855b645f6db3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/tools/life/cleaning/cleaningData.ts:1"}, "properties": {"repobilityId": "7a4001a4ca186a0d", "scanner": "scanner-primary", "fingerprint": "cc74855b645f6db3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fe3b261415eea54", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/tools/life/alcohol/alcoholUtils.ts:205"}, "properties": {"repobilityId": "f4d8a3c6e481d3f6", "scanner": "scanner-primary", "fingerprint": "6fe3b261415eea54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f7cc96fa22ce3cf", "level": "note", "message": {"text": "Legacy-named symbol `youtil_packing_v1` in app/tools/life/packing/PackingClient.tsx:17"}, "properties": {"repobilityId": "9d9f07b462bf5c47", "scanner": "scanner-primary", "fingerprint": "8f7cc96fa22ce3cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f96f5c327e2f4517", "level": "note", "message": {"text": "Legacy-named symbol `youtil_travelbudget_v1` in app/tools/life/travel-budget/TravelBudgetClient.tsx:17"}, "properties": {"repobilityId": "e680f18c969afcfa", "scanner": "scanner-primary", "fingerprint": "f96f5c327e2f4517", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1e9571d5f411f739", "level": "note", "message": {"text": "Legacy-named symbol `youtil_bmr_history_v1` in app/tools/health/bmr/bmrUtils.ts:323"}, "properties": {"repobilityId": "8c680208631557a6", "scanner": "scanner-primary", "fingerprint": "1e9571d5f411f739", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dd7995791a84c899", "level": "note", "message": {"text": "Legacy-named symbol `youtil_caffeine_v1` in app/tools/health/caffeine/CaffeineClient.tsx:83"}, "properties": {"repobilityId": "d9b859ed0557c93b", "scanner": "scanner-primary", "fingerprint": "dd7995791a84c899", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2719a8c3f6560350", "level": "note", "message": {"text": "Legacy-named symbol `youtil_bmi_history_v1` in app/tools/health/bmi/bmiUtils.ts:366"}, "properties": {"repobilityId": "d703bb6dab160d32", "scanner": "scanner-primary", "fingerprint": "2719a8c3f6560350", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b5a015a75432a6ab", "level": "note", "message": {"text": "Legacy-named symbol `youtil_pregnancy_v1` in app/tools/health/pregnancy/pregnancyUtils.ts:294"}, "properties": {"repobilityId": "1efd205dc016f310", "scanner": "scanner-primary", "fingerprint": "b5a015a75432a6ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dbd1bc4f76f4f3fa", "level": "note", "message": {"text": "Legacy-named symbol `youtil_sleep_debt_v1` in app/tools/health/sleep-debt/SleepDebtClient.tsx:21"}, "properties": {"repobilityId": "d53f4bb4df981514", "scanner": "scanner-primary", "fingerprint": "dbd1bc4f76f4f3fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-84628d6992932bc6", "level": "note", "message": {"text": "Legacy-named symbol `youtil_vo2max_v1` in app/tools/sports/vo2max/VO2MaxClient.tsx:16"}, "properties": {"repobilityId": "94601cb58bdb77c5", "scanner": "scanner-primary", "fingerprint": "84628d6992932bc6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e58d1ac390754709", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/sports/race-plan/racePlanUtils.ts:1"}, "properties": {"repobilityId": "50cab92e7d13e63e", "scanner": "scanner-primary", "fingerprint": "e58d1ac390754709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc0a347b20935b53", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/tools/sports/one-rm/oneRMUtils.ts:86"}, "properties": {"repobilityId": "06e07c19bab2b2e7", "scanner": "scanner-primary", "fingerprint": "fc0a347b20935b53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5534e8a2fe8ef62", "level": "note", "message": {"text": "Legacy-named symbol `youtil_hyrox_v1` in app/tools/sports/hyrox/HyroxClient.tsx:12"}, "properties": {"repobilityId": "e9717169d202d86a", "scanner": "scanner-primary", "fingerprint": "c5534e8a2fe8ef62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93a4d91be6eb5fb2", "level": "note", "message": {"text": "Legacy-named symbol `youtil_grip_size_v1` in app/tools/sports/grip-size/GripSizeClient.tsx:15"}, "properties": {"repobilityId": "f8693084369ed423", "scanner": "scanner-primary", "fingerprint": "93a4d91be6eb5fb2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-54b03a70d4631b7a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/tools/sports/climbing-grade/climbingData.ts:1"}, "properties": {"repobilityId": "96547839da133bc4", "scanner": "scanner-primary", "fingerprint": "54b03a70d4631b7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edff3f2d50f4739d", "level": "note", "message": {"text": "Legacy-named symbol `youtil_formation_v1` in app/tools/sports/formation/FormationClient.tsx:13"}, "properties": {"repobilityId": "91480a2d36d080a0", "scanner": "scanner-primary", "fingerprint": "edff3f2d50f4739d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cd22648bbec1344b", "level": "note", "message": {"text": "Legacy-named symbol `youtil_bolt_wrench_v1` in app/tools/interior/bolt-wrench/BoltWrenchClient.tsx:19"}, "properties": {"repobilityId": "c913a1f203d030e6", "scanner": "scanner-primary", "fingerprint": "cd22648bbec1344b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4b90bc5d3c035e7d", "level": "note", "message": {"text": "Legacy-named symbol `youtil_wire_v1` in app/tools/interior/wire/WireClient.tsx:19"}, "properties": {"repobilityId": "b58ce96a03a82104", "scanner": "scanner-primary", "fingerprint": "4b90bc5d3c035e7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c1dc21affa95a992", "level": "note", "message": {"text": "Legacy-named symbol `insOld` in app/tools/interior/ac-capacity/AcCapacityClient.tsx:48"}, "properties": {"repobilityId": "e9d45466dbdded76", "scanner": "scanner-primary", "fingerprint": "c1dc21affa95a992", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1f653c140b16b30c", "level": "note", "message": {"text": "Legacy-named symbol `youtil_rebar_v1` in app/tools/interior/rebar/RebarClient.tsx:18"}, "properties": {"repobilityId": "112fdfaf8c9abedc", "scanner": "scanner-primary", "fingerprint": "1f653c140b16b30c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-73664448c41ef2e0", "level": "note", "message": {"text": "Legacy-named symbol `youtil_pipe_v1` in app/tools/interior/pipe/PipeClient.tsx:17"}, "properties": {"repobilityId": "7ddf1f4f5a14fc31", "scanner": "scanner-primary", "fingerprint": "73664448c41ef2e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3fc42e6ea2fc0d4b", "level": "note", "message": {"text": "Legacy-named symbol `youtil_severance_v1` in app/tools/finance/severance/SeveranceClient.tsx:20"}, "properties": {"repobilityId": "b1a5105d5a66f2d2", "scanner": "scanner-primary", "fingerprint": "3fc42e6ea2fc0d4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e621b407dfe7a72", "level": "note", "message": {"text": "Legacy-named symbol `youtil_housing_score_v1` in app/tools/finance/housing-score/HousingScoreClient.tsx:19"}, "properties": {"repobilityId": "d40eec46b265fbdd", "scanner": "scanner-primary", "fingerprint": "9e621b407dfe7a72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eaef3a3ce1ebbbdf", "level": "note", "message": {"text": "Legacy-named symbol `youtil_auction_v1` in app/tools/finance/auction/AuctionClient.tsx:16"}, "properties": {"repobilityId": "336d69d38a1248ca", "scanner": "scanner-primary", "fingerprint": "eaef3a3ce1ebbbdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a85e6ab1987c83e7", "level": "note", "message": {"text": "Legacy-named symbol `youtil_hist_money_v1` in app/tools/finance/historical-money/HistoricalMoneyClient.tsx:13"}, "properties": {"repobilityId": "f990d561850eab3c", "scanner": "scanner-primary", "fingerprint": "a85e6ab1987c83e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f94ef62f907a1b48", "level": "note", "message": {"text": "Legacy-named symbol `won_old` in app/tools/finance/historical-money/historicalMoneyData.ts:17"}, "properties": {"repobilityId": "83346d25f67ed6db", "scanner": "scanner-primary", "fingerprint": "f94ef62f907a1b48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5bf3bad8ffc1e0e9", "level": "note", "message": {"text": "Legacy-named symbol `youtil_savings_v1` in app/tools/finance/savings/SavingsClient.tsx:20"}, "properties": {"repobilityId": "db07860cbbb2065c", "scanner": "scanner-primary", "fingerprint": "5bf3bad8ffc1e0e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa00bec82a10dbf6", "level": "note", "message": {"text": "Legacy-named symbol `youtil_car_tax_v1` in app/tools/finance/car-tax/CarTaxClient.tsx:12"}, "properties": {"repobilityId": "610ff12ed805e811", "scanner": "scanner-primary", "fingerprint": "aa00bec82a10dbf6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a036e598a0b471e7", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/tools/finance/wealth-rank/wealthData.ts:8"}, "properties": {"repobilityId": "3f8cc862074cb700", "scanner": "scanner-primary", "fingerprint": "a036e598a0b471e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31744be2b11c8bdf", "level": "note", "message": {"text": "Legacy-named symbol `youtil_dsr_v1` in app/tools/finance/dsr/DsrClient.tsx:12"}, "properties": {"repobilityId": "ab31a165373c138e", "scanner": "scanner-primary", "fingerprint": "31744be2b11c8bdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d0f6970982b29d8", "level": "note", "message": {"text": "Legacy-named symbol `youtil_schengen_v1` in app/tools/date/schengen/SchengenClient.tsx:17"}, "properties": {"repobilityId": "27a93040b8850c3a", "scanner": "scanner-primary", "fingerprint": "4d0f6970982b29d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa456e9000d93589", "level": "note", "message": {"text": "Legacy-named symbol `youtil_hash_v1` in app/tools/dev/hash/HashClient.tsx:16"}, "properties": {"repobilityId": "95666cdfbb0e7ce7", "scanner": "scanner-primary", "fingerprint": "aa456e9000d93589", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-90cf893dd11b8f82", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/curlUtils.ts:697"}, "properties": {"repobilityId": "b344a0183e79d2fc", "scanner": "scanner-primary", "fingerprint": "90cf893dd11b8f82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d09b52e498d1eac", "level": "note", "message": {"text": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/page.tsx:79"}, "properties": {"repobilityId": "4a7a680f42acc380", "scanner": "scanner-primary", "fingerprint": "0d09b52e498d1eac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2f6767c9f620e036", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/dev/curl/page.tsx:70"}, "properties": {"repobilityId": "9a38f7644d1d30df", "scanner": "scanner-primary", "fingerprint": "2f6767c9f620e036", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-09e144d290794cdf", "level": "note", "message": {"text": "Legacy-named symbol `youtil_curl_v1` in app/tools/dev/curl/CurlClient.tsx:16"}, "properties": {"repobilityId": "33a6be28a8d065f2", "scanner": "scanner-primary", "fingerprint": "09e144d290794cdf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-393563a9c18fe85a", "level": "note", "message": {"text": "Legacy-named symbol `youtil_token_counter_v1` in app/tools/dev/token-counter/TokenCounterClient.tsx:12"}, "properties": {"repobilityId": "073a9ceb8ef4c4a1", "scanner": "scanner-primary", "fingerprint": "393563a9c18fe85a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0332d4783b4c0f51", "level": "note", "message": {"text": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/YamlJsonClient.tsx:16"}, "properties": {"repobilityId": "a42c74fd98324a01", "scanner": "scanner-primary", "fingerprint": "0332d4783b4c0f51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dc9a24f0e644a57a", "level": "note", "message": {"text": "Legacy-named symbol `youtil_yaml_json_v1` in app/tools/dev/yaml-json/page.tsx:81"}, "properties": {"repobilityId": "b3afcbcc8a6049b7", "scanner": "scanner-primary", "fingerprint": "dc9a24f0e644a57a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6534583775aa7057", "level": "note", "message": {"text": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/page.tsx:80"}, "properties": {"repobilityId": "37715c4cde289b65", "scanner": "scanner-primary", "fingerprint": "6534583775aa7057", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-558215d5768ce53e", "level": "note", "message": {"text": "Legacy-named symbol `youtil_url_encode_v1` in app/tools/dev/url-encode/UrlEncodeClient.tsx:16"}, "properties": {"repobilityId": "72b7596f6a68948e", "scanner": "scanner-primary", "fingerprint": "558215d5768ce53e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c69eecbe671a337", "level": "note", "message": {"text": "Legacy-named symbol `youtil_regex_v1` in app/tools/dev/regex/RegexClient.tsx:17"}, "properties": {"repobilityId": "f3f95c70dbe69417", "scanner": "scanner-primary", "fingerprint": "6c69eecbe671a337", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e722b7229e882af", "level": "note", "message": {"text": "Legacy-named symbol `youtil_og_preview_v1` in app/tools/dev/og-preview/OgPreviewClient.tsx:13"}, "properties": {"repobilityId": "afac5ab89f24e9d3", "scanner": "scanner-primary", "fingerprint": "9e722b7229e882af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b4ee2a8c87a1cc0d", "level": "note", "message": {"text": "Legacy-named symbol `youtil_http_status_v1` in app/tools/dev/http-status/HttpStatusClient.tsx:14"}, "properties": {"repobilityId": "0be3feaa0e08ddbb", "scanner": "scanner-primary", "fingerprint": "b4ee2a8c87a1cc0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea27182f3dd6b799", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/dev/jwt/JwtClient.tsx:6"}, "properties": {"repobilityId": "c6b7642abbb55663", "scanner": "scanner-primary", "fingerprint": "ea27182f3dd6b799", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d56b7a5a2053a7c4", "level": "note", "message": {"text": "Legacy-named symbol `youtil_gpa_v1` in app/tools/edu/gpa-converter/GpaConverterClient.tsx:12"}, "properties": {"repobilityId": "276aaae230b4da59", "scanner": "scanner-primary", "fingerprint": "d56b7a5a2053a7c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-070932e03f4a9999", "level": "note", "message": {"text": "Legacy-named symbol `youtil_roommode_v1` in app/tools/edu/room-mode/RoomModeClient.tsx:17"}, "properties": {"repobilityId": "70e6c02936f145d6", "scanner": "scanner-primary", "fingerprint": "070932e03f4a9999", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fa3de741f227b175", "level": "note", "message": {"text": "Legacy-named symbol `youtil_tea_v1` in app/tools/cooking/tea/TeaClient.tsx:18"}, "properties": {"repobilityId": "10702ce834c5d98f", "scanner": "scanner-primary", "fingerprint": "fa3de741f227b175", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2f2d4c7b258428a2", "level": "note", "message": {"text": "Legacy-named symbol `youtil_microwave_v1` in app/tools/cooking/microwave/MicrowaveClient.tsx:15"}, "properties": {"repobilityId": "665b04e4c6342b4f", "scanner": "scanner-primary", "fingerprint": "2f2d4c7b258428a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c86083a4356d631e", "level": "note", "message": {"text": "Legacy-named symbol `youtil_holiday_table_v1` in app/tools/cooking/holiday-table/HolidayTableClient.tsx:11"}, "properties": {"repobilityId": "d03140dd6499c7da", "scanner": "scanner-primary", "fingerprint": "c86083a4356d631e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ede5536f07bec280", "level": "note", "message": {"text": "Legacy-named symbol `youtil_brew_v1` in app/tools/cooking/brew/BrewClient.tsx:17"}, "properties": {"repobilityId": "e13bbe91a73f0ef1", "scanner": "scanner-primary", "fingerprint": "ede5536f07bec280", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a7779a8ac33cfaac", "level": "note", "message": {"text": "Legacy-named symbol `youtil_scale_v1` in app/tools/art/scale/ScaleClient.tsx:17"}, "properties": {"repobilityId": "3a48b61b72d1a967", "scanner": "scanner-primary", "fingerprint": "a7779a8ac33cfaac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9a83832008cbd2ab", "level": "note", "message": {"text": "Legacy-named symbol `youtil_exposure_v2` in app/tools/art/exposure/ExposureClient.tsx:18"}, "properties": {"repobilityId": "4a29ae9531e2d994", "scanner": "scanner-primary", "fingerprint": "9a83832008cbd2ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-343b6948501b8e64", "level": "note", "message": {"text": "Legacy-named symbol `youtil_charcount_v1` in app/tools/art/charcount/CharCountClient.tsx:6"}, "properties": {"repobilityId": "9e12cc71eb42c33b", "scanner": "scanner-primary", "fingerprint": "343b6948501b8e64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8aa548fed433c019", "level": "note", "message": {"text": "Legacy-named symbol `youtil_vocal_range_v1` in app/tools/art/vocal-range/VocalRangeClient.tsx:42"}, "properties": {"repobilityId": "d77c39e73b81f524", "scanner": "scanner-primary", "fingerprint": "8aa548fed433c019", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f75cccb50842944", "level": "note", "message": {"text": "Legacy-named symbol `youtil_paint_mix_v1` in app/tools/art/paint-mix/PaintMixClient.tsx:22"}, "properties": {"repobilityId": "d21c26a4117c2fdc", "scanner": "scanner-primary", "fingerprint": "3f75cccb50842944", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1357ac08c043a8a6", "level": "note", "message": {"text": "Legacy-named symbol `youtil_fov_v1` in app/tools/art/fov/FovClient.tsx:14"}, "properties": {"repobilityId": "7adb10d328aa03a5", "scanner": "scanner-primary", "fingerprint": "1357ac08c043a8a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-018e0f62a45a84cb", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/tools/art/morse-code/morseData.ts:1"}, "properties": {"repobilityId": "325b382f9a12a42c", "scanner": "scanner-primary", "fingerprint": "018e0f62a45a84cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6b75f64db1e7b36", "level": "note", "message": {"text": "Legacy-named symbol `youtil_knit_gauge_v1` in app/tools/art/knit-gauge/KnitGaugeClient.tsx:18"}, "properties": {"repobilityId": "7b77947dfcba939e", "scanner": "scanner-primary", "fingerprint": "f6b75f64db1e7b36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c68f49d58901f8ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/date.ts:1"}, "properties": {"repobilityId": "ed5c9748e3ac2640", "scanner": "scanner-primary", "fingerprint": "c68f49d58901f8ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d5ec95c28ae401f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/categoryGuides.ts:1"}, "properties": {"repobilityId": "9fee4beed7496ea0", "scanner": "scanner-primary", "fingerprint": "8d5ec95c28ae401f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56b274b7ceef220a", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/vinDecoder.ts:1"}, "properties": {"repobilityId": "12af564d8f526d29", "scanner": "scanner-primary", "fingerprint": "56b274b7ceef220a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}