{"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-6b63fbd2b0c79e40", "name": "Stray `console.log` in TS/JS \u2014 bake-blog.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 bake-blog.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4160b56881058ff", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch4.html:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch4.html:51"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18b47dffd29e38d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in decide-engine.js:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in decide-engine.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-214085728ab0c244", "name": "Insecure pattern 'direct_innerhtml_assignment' in newsletter.js:50", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in newsletter.js:50"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d91917cf2825264", "name": "Insecure pattern 'direct_innerhtml_assignment' in college-detail.html:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in college-detail.html:95"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1efb6bb2b095cb4f", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-catalog.html:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-catalog.html:57"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8e57ea19d2274ed", "name": "Insecure pattern 'direct_innerhtml_assignment' in comments.js:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in comments.js:101"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e23aed8127f48f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in verify-vernacular.html:75", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in verify-vernacular.html:75"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f91dac06b18f2047", "name": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-cuisine.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-cuisine.js:65"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3a25b0d3c074e93", "name": "Insecure pattern 'direct_innerhtml_assignment' in cars-detail.html:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cars-detail.html:88"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-32444702f77f5189", "name": "Insecure pattern 'direct_outerhtml_assignment' in components.js:194", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in components.js:194"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9179cedd345de11", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch3.html:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch3.html:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5d1870499685238", "name": "Insecure pattern 'direct_innerhtml_assignment' in widgets.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in widgets.js:55"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0268e29751e09513", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-institutions.html:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-institutions.html:53"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5718a929e3457abe", "name": "Insecure pattern 'direct_innerhtml_assignment' in hospital-detail.html:110", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-detail.html:110"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c83d22f273032c6a", "name": "Insecure pattern 'direct_innerhtml_assignment' in chat-widget.js:142", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in chat-widget.js:142"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b924df827abf45b7", "name": "Insecure pattern 'document_write' in admin-auth-gate.js:46", "shortDescription": {"text": "Insecure pattern 'document_write' in admin-auth-gate.js:46"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d777a5b712f19997", "name": "Possible secret in config.js", "shortDescription": {"text": "Possible secret in config.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-e7d4c54daee790b0", "name": "Insecure pattern 'direct_innerhtml_assignment' in verify-batch4.html:149", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in verify-batch4.html:149"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de085a1b6b6e69e4", "name": "Insecure pattern 'direct_innerhtml_assignment' in hospital-city.js:122", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-city.js:122"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b26cbcd47e6369e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dc1d55db3ca99e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-vernacular.html:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-vernacular.html:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9805b5344579358c", "name": "Insecure pattern 'new_function_used' in bake-blog.js:31", "shortDescription": {"text": "Insecure pattern 'new_function_used' in bake-blog.js:31"}, "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-0b851f3b0ac3742d", "name": "Insecure pattern 'direct_innerhtml_assignment' in lead-form.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lead-form.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a4430247d6f5d768", "name": "Insecure pattern 'direct_innerhtml_assignment' in school-detail.html:132", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in school-detail.html:132"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74ba0e0bb79ad595", "name": "Insecure pattern 'direct_innerhtml_assignment' in school-board.js:30", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in school-board.js:30"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41470468ed4ea42d", "name": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-city.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-city.js:82"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-adb7873d9e4f5d55", "name": "Insecure pattern 'direct_innerhtml_assignment' in hospital-specialty.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-specialty.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9238bbd3ff27f5e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in seed-categories.html:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-categories.html:43"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebd4e91322601dee", "name": "Insecure pattern 'direct_innerhtml_assignment' in polish.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in polish.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93ab7e6bb20eeddf", "name": "Insecure pattern 'insert_adjacent_html' in polish.js:43", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in polish.js:43"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d0d2ed57f76cab0", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:505", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:505"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efce9fa383e7e209", "name": "Insecure pattern 'direct_innerhtml_assignment' in blog-post.html:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in blog-post.html:125"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e38197628198dcb9", "name": "Insecure pattern 'direct_innerhtml_assignment' in related-cities.js:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in related-cities.js:86"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b347976ce2dcbb8", "name": "Insecure pattern 'direct_innerhtml_assignment' in search.js:68", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in search.js:68"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8673c1f2d7a520ef", "name": "Insecure pattern 'direct_innerhtml_assignment' in college-stream.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in college-stream.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d82944268ad3881", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa-install.js:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa-install.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c59e7012c5783ba2", "name": "Insecure pattern 'direct_innerhtml_assignment' in electronics-detail.html:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in electronics-detail.html:99"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bf076217236a24f7", "name": "Insecure pattern 'direct_innerhtml_assignment' in compare-cart.js:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in compare-cart.js:57"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba55119ca23fa1e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in ads.js:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ads.js:24"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ad56d4cd819793b", "name": "Insecure pattern 'direct_innerhtml_assignment' in cookie-consent.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cookie-consent.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-24cbd80957a350c6", "name": "Very large file: seed-data-expansion.js (906 lines)", "shortDescription": {"text": "Very large file: seed-data-expansion.js (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-15940e4919d1e831", "name": "Very large file: seed-data-institutions.js (1132 lines)", "shortDescription": {"text": "Very large file: seed-data-institutions.js (1132 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": "0 test file(s) for 62 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "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 14 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 34 placeholder/mock markers across 15 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, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-753da15af58f85b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 decide-engine.js:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 decide-engine.js:91"}, "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-5630462f361cfb4c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:85", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:85"}, "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-f355d3678ac2ee68", "name": "Commented-code block (7 lines) in affiliate-config.js:19", "shortDescription": {"text": "Commented-code block (7 lines) in affiliate-config.js:19"}, "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-f25d51a085006c9c", "name": "Legacy-named symbol `wib_compare_cart_v1` in compare-cart.js:9", "shortDescription": {"text": "Legacy-named symbol `wib_compare_cart_v1` in compare-cart.js:9"}, "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-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbake-schools.py:unwrap, bake-colleges.py:unwrap\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/30406"}, "properties": {"repository": "WIB-X/wibest", "repoUrl": "https://github.com/WIB-X/wibest", "branch": "main"}, "results": [{"ruleId": "scanner-6b63fbd2b0c79e40", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 bake-blog.js:33"}, "properties": {"repobilityId": "0ba665dffca1bd30", "scanner": "scanner-primary", "fingerprint": "6b63fbd2b0c79e40", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4160b56881058ff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch4.html:51"}, "properties": {"repobilityId": "2b2cfbbd2329c2f2", "scanner": "scanner-primary", "fingerprint": "d4160b56881058ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-blogs-batch4.html"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-18b47dffd29e38d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in decide-engine.js:41"}, "properties": {"repobilityId": "fd8c59b259639199", "scanner": "scanner-primary", "fingerprint": "18b47dffd29e38d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "decide-engine.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-214085728ab0c244", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in newsletter.js:50"}, "properties": {"repobilityId": "82e1ffafd040c38a", "scanner": "scanner-primary", "fingerprint": "214085728ab0c244", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "newsletter.js"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-9d91917cf2825264", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in college-detail.html:95"}, "properties": {"repobilityId": "49d8868a90dc5824", "scanner": "scanner-primary", "fingerprint": "9d91917cf2825264", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "college-detail.html"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-1efb6bb2b095cb4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-catalog.html:57"}, "properties": {"repobilityId": "85d9ddad0e2c2daf", "scanner": "scanner-primary", "fingerprint": "1efb6bb2b095cb4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-catalog.html"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-f8e57ea19d2274ed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in comments.js:101"}, "properties": {"repobilityId": "1dcdadcd8faabc8e", "scanner": "scanner-primary", "fingerprint": "f8e57ea19d2274ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "comments.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-9e23aed8127f48f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in verify-vernacular.html:75"}, "properties": {"repobilityId": "7101dead597c8152", "scanner": "scanner-primary", "fingerprint": "9e23aed8127f48f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify-vernacular.html"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-f91dac06b18f2047", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-cuisine.js:65"}, "properties": {"repobilityId": "b0ca6a1a57e5998d", "scanner": "scanner-primary", "fingerprint": "f91dac06b18f2047", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "restaurant-cuisine.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-c3a25b0d3c074e93", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cars-detail.html:88"}, "properties": {"repobilityId": "0f8b578699c59426", "scanner": "scanner-primary", "fingerprint": "c3a25b0d3c074e93", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cars-detail.html"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-32444702f77f5189", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in components.js:194"}, "properties": {"repobilityId": "03b8c1a555740856", "scanner": "scanner-primary", "fingerprint": "32444702f77f5189", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components.js"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-e9179cedd345de11", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-batch3.html:46"}, "properties": {"repobilityId": "5f86f1277386b417", "scanner": "scanner-primary", "fingerprint": "e9179cedd345de11", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-blogs-batch3.html"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-c5d1870499685238", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in widgets.js:55"}, "properties": {"repobilityId": "7e6bd7a0f001a25d", "scanner": "scanner-primary", "fingerprint": "c5d1870499685238", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "widgets.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-0268e29751e09513", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-institutions.html:53"}, "properties": {"repobilityId": "aa440ca030989d53", "scanner": "scanner-primary", "fingerprint": "0268e29751e09513", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-institutions.html"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-5718a929e3457abe", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-detail.html:110"}, "properties": {"repobilityId": "582a46a8ba4b8ff7", "scanner": "scanner-primary", "fingerprint": "5718a929e3457abe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hospital-detail.html"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-c83d22f273032c6a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in chat-widget.js:142"}, "properties": {"repobilityId": "dae7ff8577caabba", "scanner": "scanner-primary", "fingerprint": "c83d22f273032c6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "chat-widget.js"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-b924df827abf45b7", "level": "note", "message": {"text": "Insecure pattern 'document_write' in admin-auth-gate.js:46"}, "properties": {"repobilityId": "8d93d5794492c7a6", "scanner": "scanner-primary", "fingerprint": "b924df827abf45b7", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin-auth-gate.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-d777a5b712f19997", "level": "error", "message": {"text": "Possible secret in config.js"}, "properties": {"repobilityId": "676cd1ff48d78b68", "scanner": "scanner-primary", "fingerprint": "d777a5b712f19997", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-e7d4c54daee790b0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in verify-batch4.html:149"}, "properties": {"repobilityId": "7e3915c9aa00d7b1", "scanner": "scanner-primary", "fingerprint": "e7d4c54daee790b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "verify-batch4.html"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-de085a1b6b6e69e4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-city.js:122"}, "properties": {"repobilityId": "92cb0ef44ecdf989", "scanner": "scanner-primary", "fingerprint": "de085a1b6b6e69e4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hospital-city.js"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-b26cbcd47e6369e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in 404.html:156"}, "properties": {"repobilityId": "1995879b743b7b70", "scanner": "scanner-primary", "fingerprint": "b26cbcd47e6369e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "404.html"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-5dc1d55db3ca99e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-blogs-vernacular.html:46"}, "properties": {"repobilityId": "fdc10e7d85c9dfa8", "scanner": "scanner-primary", "fingerprint": "5dc1d55db3ca99e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-blogs-vernacular.html"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-9805b5344579358c", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in bake-blog.js:31"}, "properties": {"repobilityId": "fd85c1b783db906b", "scanner": "scanner-primary", "fingerprint": "9805b5344579358c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bake-blog.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-0b851f3b0ac3742d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in lead-form.js:93"}, "properties": {"repobilityId": "c62e2d589def08fa", "scanner": "scanner-primary", "fingerprint": "0b851f3b0ac3742d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lead-form.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-a4430247d6f5d768", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in school-detail.html:132"}, "properties": {"repobilityId": "6508d9e947c7e235", "scanner": "scanner-primary", "fingerprint": "a4430247d6f5d768", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "school-detail.html"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-74ba0e0bb79ad595", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in school-board.js:30"}, "properties": {"repobilityId": "b7e03cde632b8818", "scanner": "scanner-primary", "fingerprint": "74ba0e0bb79ad595", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "school-board.js"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-41470468ed4ea42d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in restaurant-city.js:82"}, "properties": {"repobilityId": "e4e421f63c536cd3", "scanner": "scanner-primary", "fingerprint": "41470468ed4ea42d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "restaurant-city.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-adb7873d9e4f5d55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in hospital-specialty.js:37"}, "properties": {"repobilityId": "d6697900a98917f4", "scanner": "scanner-primary", "fingerprint": "adb7873d9e4f5d55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "hospital-specialty.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-9238bbd3ff27f5e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in seed-categories.html:43"}, "properties": {"repobilityId": "8e8b5890fc572300", "scanner": "scanner-primary", "fingerprint": "9238bbd3ff27f5e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "seed-categories.html"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-ebd4e91322601dee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in polish.js:23"}, "properties": {"repobilityId": "6209af423446ae7d", "scanner": "scanner-primary", "fingerprint": "ebd4e91322601dee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "polish.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-93ab7e6bb20eeddf", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in polish.js:43"}, "properties": {"repobilityId": "5e1ea992bac26187", "scanner": "scanner-primary", "fingerprint": "93ab7e6bb20eeddf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "polish.js"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-5d0d2ed57f76cab0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:505"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "5d0d2ed57f76cab0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 505}}}]}, {"ruleId": "scanner-efce9fa383e7e209", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in blog-post.html:125"}, "properties": {"repobilityId": "668842d9695a6f9b", "scanner": "scanner-primary", "fingerprint": "efce9fa383e7e209", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "blog-post.html"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-e38197628198dcb9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in related-cities.js:86"}, "properties": {"repobilityId": "622c5f8e9f9a2cdb", "scanner": "scanner-primary", "fingerprint": "e38197628198dcb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "related-cities.js"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-9b347976ce2dcbb8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in search.js:68"}, "properties": {"repobilityId": "3090b118f2814e35", "scanner": "scanner-primary", "fingerprint": "9b347976ce2dcbb8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "search.js"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-8673c1f2d7a520ef", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in college-stream.js:28"}, "properties": {"repobilityId": "327fa5177ecd2d22", "scanner": "scanner-primary", "fingerprint": "8673c1f2d7a520ef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "college-stream.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-7d82944268ad3881", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa-install.js:24"}, "properties": {"repobilityId": "8fd63287309464a6", "scanner": "scanner-primary", "fingerprint": "7d82944268ad3881", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa-install.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c59e7012c5783ba2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in electronics-detail.html:99"}, "properties": {"repobilityId": "9da89f07387d8ee6", "scanner": "scanner-primary", "fingerprint": "c59e7012c5783ba2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "electronics-detail.html"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-bf076217236a24f7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in compare-cart.js:57"}, "properties": {"repobilityId": "4deaa30942ed824e", "scanner": "scanner-primary", "fingerprint": "bf076217236a24f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "compare-cart.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-ba55119ca23fa1e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ads.js:24"}, "properties": {"repobilityId": "03761af5db06005a", "scanner": "scanner-primary", "fingerprint": "ba55119ca23fa1e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ads.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-2ad56d4cd819793b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in cookie-consent.js:34"}, "properties": {"repobilityId": "1757a289c216b922", "scanner": "scanner-primary", "fingerprint": "2ad56d4cd819793b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cookie-consent.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-24cbd80957a350c6", "level": "note", "message": {"text": "Very large file: seed-data-expansion.js (906 lines)"}, "properties": {"repobilityId": "d274dcb042dd6b49", "scanner": "scanner-primary", "fingerprint": "24cbd80957a350c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-15940e4919d1e831", "level": "note", "message": {"text": "Very large file: seed-data-institutions.js (1132 lines)"}, "properties": {"repobilityId": "b6cbbabdbf4ece18", "scanner": "scanner-primary", "fingerprint": "15940e4919d1e831", "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": "b52480e8ddec785d", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "88ea2b957fce314e", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "85e7ab2972bbd2c7", "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": "a008335ffc0c5ab3", "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": "0deb9128250dd60c", "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": "1aab0d5c47a62540", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-753da15af58f85b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 decide-engine.js:91"}, "properties": {"repobilityId": "60ec344132e7d6c2", "scanner": "scanner-primary", "fingerprint": "753da15af58f85b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5630462f361cfb4c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 sw.js:85"}, "properties": {"repobilityId": "12a56622ccd2f9db", "scanner": "scanner-primary", "fingerprint": "5630462f361cfb4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f355d3678ac2ee68", "level": "none", "message": {"text": "Commented-code block (7 lines) in affiliate-config.js:19"}, "properties": {"repobilityId": "a6df53d79ae19eed", "scanner": "scanner-primary", "fingerprint": "f355d3678ac2ee68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f25d51a085006c9c", "level": "note", "message": {"text": "Legacy-named symbol `wib_compare_cart_v1` in compare-cart.js:9"}, "properties": {"repobilityId": "f904acb09ad0474f", "scanner": "scanner-primary", "fingerprint": "f25d51a085006c9c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1b9035211da6087f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}